@etherisc/gif-next 0.0.2-aaa8646-641 → 0.0.2-aac44b0-298

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 (684) hide show
  1. package/README.md +52 -5
  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/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  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 +1324 -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 +1018 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1471 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -310
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +223 -133
  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 +1429 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -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 +1430 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -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 +120 -107
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +170 -122
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +144 -236
  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 +981 -331
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -277
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +175 -102
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1438 -433
  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 -54
  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 +8 -116
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  91. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  92. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  93. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  95. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  97. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  99. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  100. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +233 -287
  101. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  102. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → oracle/IOracleService.sol/IOracleService.json} +290 -183
  103. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  105. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +982 -0
  107. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +746 -0
  109. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  110. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +325 -447
  111. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  113. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1469 -0
  115. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +850 -0
  117. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +313 -63
  119. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +519 -194
  123. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +389 -424
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +786 -0
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +787 -0
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +734 -0
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  134. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +416 -435
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  141. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +58 -13
  143. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  144. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +224 -251
  145. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +931 -0
  147. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  148. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +154 -94
  149. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1005 -0
  151. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  152. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
  153. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1316 -0
  155. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +802 -0
  157. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  159. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  161. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  162. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  163. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  165. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  167. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  169. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
  171. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
  173. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  175. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
  177. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  179. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -245
  181. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
  183. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  185. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  187. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  189. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  191. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  192. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +286 -230
  193. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1843 -0
  195. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +834 -0
  197. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
  199. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
  201. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  202. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +146 -131
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  205. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  207. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  209. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
  217. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  219. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IService.sol/IService.json +46 -6
  221. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  223. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  224. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +225 -268
  225. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  227. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  229. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  231. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  233. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  235. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
  237. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  239. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
  241. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  248. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +695 -605
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  305. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  307. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  310. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  320. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  326. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  327. package/contracts/authorization/AccessAdmin.sol +596 -0
  328. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  329. package/contracts/authorization/Authorization.sol +289 -0
  330. package/contracts/authorization/IAccess.sol +49 -0
  331. package/contracts/authorization/IAccessAdmin.sol +137 -0
  332. package/contracts/authorization/IAuthorization.sol +60 -0
  333. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  334. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  335. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  336. package/contracts/distribution/BasicDistribution.sol +139 -0
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  338. package/contracts/{components → distribution}/Distribution.sol +165 -164
  339. package/contracts/distribution/DistributionService.sol +355 -0
  340. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  341. package/contracts/distribution/IDistributionComponent.sol +52 -0
  342. package/contracts/{instance/service → distribution}/IDistributionService.sol +40 -24
  343. package/contracts/examples/fire/DamageLevel.sol +59 -0
  344. package/contracts/examples/fire/FirePool.sol +86 -0
  345. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  346. package/contracts/examples/fire/FireProduct.sol +431 -0
  347. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  348. package/contracts/examples/fire/FireUSD.sol +26 -0
  349. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  350. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  351. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  352. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  353. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
  354. package/contracts/instance/IInstance.sol +33 -47
  355. package/contracts/instance/IInstanceService.sol +36 -45
  356. package/contracts/instance/Instance.sol +131 -136
  357. package/contracts/instance/InstanceAdmin.sol +277 -0
  358. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  359. package/contracts/instance/InstanceReader.sol +236 -61
  360. package/contracts/instance/InstanceService.sol +269 -164
  361. package/contracts/instance/InstanceServiceManager.sol +14 -29
  362. package/contracts/instance/InstanceStore.sol +152 -73
  363. package/contracts/instance/base/BalanceStore.sol +123 -0
  364. package/contracts/instance/base/Cloneable.sol +28 -0
  365. package/contracts/instance/base/ObjectCounter.sol +21 -0
  366. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  367. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  368. package/contracts/instance/module/IAccess.sol +4 -12
  369. package/contracts/instance/module/IBundle.sol +6 -9
  370. package/contracts/instance/module/IComponents.sol +27 -18
  371. package/contracts/instance/module/IDistribution.sol +6 -6
  372. package/contracts/instance/module/IPolicy.sol +44 -36
  373. package/contracts/instance/module/IRisk.sol +1 -1
  374. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  375. package/contracts/oracle/BasicOracle.sol +47 -0
  376. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  377. package/contracts/oracle/IOracle.sol +36 -0
  378. package/contracts/oracle/IOracleComponent.sol +33 -0
  379. package/contracts/oracle/IOracleService.sol +66 -0
  380. package/contracts/oracle/Oracle.sol +156 -0
  381. package/contracts/oracle/OracleService.sol +292 -0
  382. package/contracts/oracle/OracleServiceManager.sol +39 -0
  383. package/contracts/pool/BasicPool.sol +175 -0
  384. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  385. package/contracts/pool/BundleService.sol +485 -0
  386. package/contracts/pool/BundleServiceManager.sol +39 -0
  387. package/contracts/pool/IBundleService.sol +140 -0
  388. package/contracts/pool/IPoolComponent.sol +62 -0
  389. package/contracts/pool/IPoolService.sol +172 -0
  390. package/contracts/pool/Pool.sol +345 -0
  391. package/contracts/pool/PoolService.sol +620 -0
  392. package/contracts/pool/PoolServiceManager.sol +39 -0
  393. package/contracts/product/ApplicationService.sol +259 -0
  394. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  395. package/contracts/product/BasicProduct.sol +49 -0
  396. package/contracts/product/BasicProductAuthorization.sol +42 -0
  397. package/contracts/product/ClaimService.sol +614 -0
  398. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  399. package/contracts/{instance/service → product}/IApplicationService.sol +14 -12
  400. package/contracts/product/IClaimService.sol +123 -0
  401. package/contracts/product/IPolicyService.sol +82 -0
  402. package/contracts/product/IPricingService.sol +39 -0
  403. package/contracts/product/IProductComponent.sol +59 -0
  404. package/contracts/product/IRiskService.sol +33 -0
  405. package/contracts/product/PolicyService.sol +695 -0
  406. package/contracts/product/PolicyServiceManager.sol +39 -0
  407. package/contracts/product/PricingService.sol +300 -0
  408. package/contracts/product/PricingServiceManager.sol +39 -0
  409. package/contracts/product/Product.sol +432 -0
  410. package/contracts/product/RiskService.sol +96 -0
  411. package/contracts/product/RiskServiceManager.sol +39 -0
  412. package/contracts/registry/ChainNft.sol +75 -38
  413. package/contracts/registry/IRegistry.sol +98 -26
  414. package/contracts/registry/IRegistryService.sol +34 -40
  415. package/contracts/registry/ITransferInterceptor.sol +1 -2
  416. package/contracts/registry/Registry.sol +453 -195
  417. package/contracts/registry/RegistryAdmin.sol +462 -0
  418. package/contracts/registry/RegistryService.sol +87 -132
  419. package/contracts/registry/RegistryServiceManager.sol +23 -32
  420. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  421. package/contracts/registry/ReleaseRegistry.sol +485 -0
  422. package/contracts/registry/ServiceAuthorizationV3.sol +203 -0
  423. package/contracts/registry/TokenRegistry.sol +261 -62
  424. package/contracts/shared/Component.sol +229 -0
  425. package/contracts/shared/ComponentService.sol +779 -0
  426. package/contracts/shared/ComponentServiceManager.sol +38 -0
  427. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  428. package/contracts/shared/ContractLib.sol +54 -0
  429. package/contracts/shared/IComponent.sol +67 -0
  430. package/contracts/shared/IComponentService.sol +130 -0
  431. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  432. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  433. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  434. package/contracts/shared/INftOwnable.sol +4 -2
  435. package/contracts/shared/IPolicyHolder.sol +23 -14
  436. package/contracts/shared/IRegisterable.sol +11 -0
  437. package/contracts/shared/IRegistryLinked.sol +0 -1
  438. package/contracts/shared/IService.sol +12 -3
  439. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  440. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  441. package/contracts/shared/KeyValueStore.sol +131 -0
  442. package/contracts/shared/Lifecycle.sol +88 -0
  443. package/contracts/shared/NftIdSet.sol +65 -0
  444. package/contracts/shared/NftOwnable.sol +32 -25
  445. package/contracts/shared/PolicyHolder.sol +22 -41
  446. package/contracts/shared/Registerable.sol +32 -23
  447. package/contracts/shared/RegistryLinked.sol +9 -19
  448. package/contracts/shared/Service.sol +48 -36
  449. package/contracts/shared/TokenHandler.sol +376 -12
  450. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  451. package/contracts/staking/IStaking.sol +173 -0
  452. package/contracts/staking/IStakingService.sol +157 -0
  453. package/contracts/staking/StakeManagerLib.sol +224 -0
  454. package/contracts/staking/Staking.sol +505 -0
  455. package/contracts/staking/StakingLifecycle.sol +23 -0
  456. package/contracts/staking/StakingManager.sol +52 -0
  457. package/contracts/staking/StakingReader.sol +190 -0
  458. package/contracts/staking/StakingService.sol +453 -0
  459. package/contracts/staking/StakingServiceManager.sol +44 -0
  460. package/contracts/staking/StakingStore.sol +605 -0
  461. package/contracts/staking/TargetManagerLib.sol +211 -0
  462. package/contracts/{types → type}/AddressSet.sol +1 -1
  463. package/contracts/type/Amount.sol +150 -0
  464. package/contracts/{types → type}/Blocknumber.sol +26 -3
  465. package/contracts/{types → type}/ClaimId.sol +6 -1
  466. package/contracts/{types → type}/Fee.sol +24 -22
  467. package/contracts/{types → type}/NftId.sol +15 -16
  468. package/contracts/{types → type}/NftIdSet.sol +2 -2
  469. package/contracts/type/ObjectType.sol +276 -0
  470. package/contracts/{types → type}/PayoutId.sol +10 -10
  471. package/contracts/{types → type}/Referral.sol +2 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +17 -3
  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 +41 -2
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +17 -3
  480. package/contracts/{types → type}/UFixed.sol +38 -9
  481. package/contracts/{types → type}/Version.sol +4 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  483. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  486. package/package.json +11 -7
  487. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  494. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  495. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  496. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  497. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  498. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  499. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  500. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  501. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  502. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  503. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  504. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  505. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  506. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  509. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  510. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  511. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  512. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  513. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  515. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  516. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -902
  518. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -649
  520. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1326
  522. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  524. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1072
  526. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  528. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1515
  530. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -757
  532. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1575
  542. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  544. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1481
  546. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
  548. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -988
  550. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -689
  552. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -872
  554. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  556. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  557. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  558. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  559. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  560. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  561. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  562. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  563. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  564. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  565. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  566. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  567. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  568. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  569. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  570. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  572. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  574. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  576. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  578. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  580. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  582. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  583. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  584. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  585. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  586. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  587. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  588. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  590. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  592. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  594. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  596. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  598. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  600. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  601. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  602. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  604. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  605. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  606. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  608. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  610. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  612. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  614. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  616. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  618. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  620. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  622. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  625. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  627. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  629. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  631. package/contracts/components/Component.sol +0 -253
  632. package/contracts/components/IComponent.sol +0 -76
  633. package/contracts/components/IDistributionComponent.sol +0 -71
  634. package/contracts/components/IPoolComponent.sol +0 -113
  635. package/contracts/components/IProductComponent.sol +0 -40
  636. package/contracts/components/Pool.sol +0 -302
  637. package/contracts/components/Product.sol +0 -374
  638. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  639. package/contracts/instance/Cloneable.sol +0 -51
  640. package/contracts/instance/InstanceAccessManager.sol +0 -541
  641. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -300
  642. package/contracts/instance/base/ComponentService.sol +0 -148
  643. package/contracts/instance/base/KeyValueStore.sol +0 -180
  644. package/contracts/instance/base/Lifecycle.sol +0 -117
  645. package/contracts/instance/module/ISetup.sol +0 -33
  646. package/contracts/instance/module/ITreasury.sol +0 -23
  647. package/contracts/instance/service/ApplicationService.sol +0 -185
  648. package/contracts/instance/service/BundleService.sol +0 -440
  649. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  650. package/contracts/instance/service/ClaimService.sol +0 -239
  651. package/contracts/instance/service/DistributionService.sol +0 -342
  652. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  653. package/contracts/instance/service/IBundleService.sol +0 -102
  654. package/contracts/instance/service/IClaimService.sol +0 -92
  655. package/contracts/instance/service/IPolicyService.sol +0 -142
  656. package/contracts/instance/service/IPoolService.sol +0 -102
  657. package/contracts/instance/service/IPricingService.sol +0 -36
  658. package/contracts/instance/service/IProductService.sol +0 -40
  659. package/contracts/instance/service/PolicyService.sol +0 -579
  660. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  661. package/contracts/instance/service/PoolService.sol +0 -338
  662. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  663. package/contracts/instance/service/PricingService.sol +0 -275
  664. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  665. package/contracts/instance/service/ProductService.sol +0 -210
  666. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  667. package/contracts/registry/RegistryAccessManager.sol +0 -216
  668. package/contracts/registry/ReleaseManager.sol +0 -324
  669. package/contracts/shared/ContractDeployerLib.sol +0 -72
  670. package/contracts/test/TestFee.sol +0 -25
  671. package/contracts/test/TestRegisterable.sol +0 -18
  672. package/contracts/test/TestRoleId.sol +0 -14
  673. package/contracts/test/TestService.sol +0 -25
  674. package/contracts/test/TestToken.sol +0 -26
  675. package/contracts/test/TestVersion.sol +0 -44
  676. package/contracts/test/TestVersionable.sol +0 -17
  677. package/contracts/types/Amount.sol +0 -70
  678. package/contracts/types/ChainId.sol +0 -38
  679. package/contracts/types/NumberId.sol +0 -52
  680. package/contracts/types/ObjectType.sol +0 -161
  681. package/contracts/types/RoleId.sol +0 -97
  682. package/contracts/types/Seconds.sol +0 -54
  683. /package/contracts/{types → type}/DistributorType.sol +0 -0
  684. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -3,194 +3,273 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
- import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {ClaimId} from "../types/ClaimId.sol";
9
- import {NumberId} from "../types/NumberId.sol";
10
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
11
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
12
- import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
13
- import {StateId, ACTIVE} from "../types/StateId.sol";
14
- import {TimestampLib} from "../types/Timestamp.sol";
15
- import {VersionPart, VersionPartLib} from "../types/Version.sol";
16
- import {ReferralId} from "../types/Referral.sol";
17
- import {DistributorType} from "../types/DistributorType.sol";
18
- import {PayoutId} from "../types/PayoutId.sol";
19
-
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";
20
19
  import {IInstance} from "./IInstance.sol";
21
- import {KeyValueStore} from "./base/KeyValueStore.sol";
22
- import {IKeyValueStore} from "./base/KeyValueStore.sol";
20
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
21
+ import {ObjectCounter} from "./base/ObjectCounter.sol";
23
22
 
24
23
  import {IBundle} from "./module/IBundle.sol";
25
24
  import {IComponents} from "./module/IComponents.sol";
26
25
  import {IDistribution} from "./module/IDistribution.sol";
27
26
  import {IPolicy} from "./module/IPolicy.sol";
27
+ import {IOracle} from "../oracle/IOracle.sol";
28
28
  import {IRisk} from "./module/IRisk.sol";
29
- import {ISetup} from "./module/ISetup.sol";
29
+
30
+ import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
30
31
 
31
32
 
32
- // TODO combine with instance reader?
33
- contract InstanceStore is AccessManagedUpgradeable, KeyValueStore
33
+ contract InstanceStore is
34
+ AccessManagedUpgradeable,
35
+ BalanceStore,
36
+ KeyValueStore,
37
+ ObjectCounter,
38
+ ObjectLifecycle
34
39
  {
35
- function initialize(address instance)
40
+
41
+ /// @dev This initializer needs to be called from the instance itself.
42
+ function initialize()
36
43
  public
37
44
  initializer()
38
45
  {
46
+ address instance = msg.sender;
39
47
  address authority = IInstance(instance).authority();
48
+
40
49
  __AccessManaged_init(authority);
41
- initializeLifecycle();
50
+ // double initialization, safe
51
+ _initializeLifecycle();
42
52
  }
43
53
 
44
- //--- ProductSetup ------------------------------------------------------//
45
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
46
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
47
- }
54
+ //--- Component ---------------------------------------------------------//
48
55
 
49
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
50
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
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));
51
65
  }
52
66
 
53
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
54
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
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);
55
76
  }
56
77
 
57
- //--- DistributionSetup ------------------------------------------------------//
58
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
59
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
60
- }
78
+ //--- Product -----------------------------------------------------------//
61
79
 
62
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
63
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
80
+ function createProduct(NftId productNftId, IComponents.ProductInfo memory info) external restricted() {
81
+ _create(_toNftKey32(productNftId, PRODUCT()), abi.encode(info));
64
82
  }
65
83
 
66
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
67
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
84
+ function updateProduct(NftId productNftId, IComponents.ProductInfo memory info, StateId newState) external restricted() {
85
+ _update(_toNftKey32(productNftId, PRODUCT()), abi.encode(info), newState);
68
86
  }
69
87
 
70
- //--- PoolSetup ------------------------------------------------------//
71
- function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
72
- create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
73
- }
88
+ //--- Pool --------------------------------------------------------------//
74
89
 
75
- function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
76
- update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
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));
77
98
  }
78
99
 
79
- function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
80
- updateState(_toNftKey32(poolNftId, POOL()), newState);
100
+ function updatePool(NftId poolNftId, IComponents.PoolInfo memory info, StateId newState) external restricted() {
101
+ _update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
81
102
  }
82
103
 
83
- //--- DistributorType -------------------------------------------------------//
104
+ //--- DistributorType ---------------------------------------------------//
84
105
  function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
85
- create(distributorType.toKey32(), abi.encode(info));
106
+ _create(distributorType.toKey32(), abi.encode(info));
86
107
  }
87
108
 
88
109
  function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
89
- update(distributorType.toKey32(), abi.encode(info), newState);
110
+ _update(distributorType.toKey32(), abi.encode(info), newState);
90
111
  }
91
112
 
92
113
  function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
93
- updateState(distributorType.toKey32(), newState);
114
+ _updateState(distributorType.toKey32(), newState);
94
115
  }
95
116
 
96
117
  //--- Distributor -------------------------------------------------------//
97
118
  function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
98
- create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
119
+ _registerBalanceTarget(distributorNftId);
120
+ _create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
99
121
  }
100
122
 
101
123
  function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
102
- update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
124
+ _update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
103
125
  }
104
126
 
105
127
  function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
106
- updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
128
+ _updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
107
129
  }
108
130
 
109
131
  //--- Referral ----------------------------------------------------------//
110
132
  function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
111
- create(referralId.toKey32(), abi.encode(referralInfo));
133
+ _create(referralId.toKey32(), abi.encode(referralInfo));
112
134
  }
113
135
 
114
136
  function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
115
- update(referralId.toKey32(), abi.encode(referralInfo), newState);
137
+ _update(referralId.toKey32(), abi.encode(referralInfo), newState);
116
138
  }
117
139
 
118
140
  function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
119
- updateState(referralId.toKey32(), newState);
141
+ _updateState(referralId.toKey32(), newState);
120
142
  }
121
143
 
122
144
  //--- Bundle ------------------------------------------------------------//
123
145
  function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
124
- create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
146
+ _registerBalanceTarget(bundleNftId);
147
+ _create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
125
148
  }
126
149
 
127
150
  function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
128
- update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
151
+ _update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
129
152
  }
130
153
 
131
154
  function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
132
- updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
155
+ _updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
133
156
  }
134
157
 
135
158
  //--- Risk --------------------------------------------------------------//
136
159
  function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
137
- create(riskId.toKey32(), abi.encode(risk));
160
+ _create(riskId.toKey32(), abi.encode(risk));
138
161
  }
139
162
 
140
163
  function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
141
- update(riskId.toKey32(), abi.encode(risk), newState);
164
+ _update(riskId.toKey32(), abi.encode(risk), newState);
142
165
  }
143
166
 
144
167
  function updateRiskState(RiskId riskId, StateId newState) external restricted() {
145
- updateState(riskId.toKey32(), newState);
168
+ _updateState(riskId.toKey32(), newState);
146
169
  }
147
170
 
148
171
  //--- Application (Policy) ----------------------------------------------//
149
172
  function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
150
- create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
173
+ _registerBalanceTarget(applicationNftId);
174
+ _create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
151
175
  }
152
176
 
153
177
  function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
154
- update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
178
+ _update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
155
179
  }
156
180
 
157
181
  function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
158
- updateState(_toNftKey32(applicationNftId, POLICY()), newState);
182
+ _updateState(_toNftKey32(applicationNftId, POLICY()), newState);
159
183
  }
160
184
 
161
185
  //--- Policy ------------------------------------------------------------//
162
186
  function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
163
- update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
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);
164
192
  }
165
193
 
166
194
  function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
167
- updateState(_toNftKey32(policyNftId, POLICY()), newState);
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);
168
206
  }
169
207
 
170
208
  //--- Claim -------------------------------------------------------------//
171
209
  function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
172
- create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
210
+ _create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
173
211
  }
174
212
 
175
213
  function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
176
- update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
214
+ _update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
177
215
  }
178
216
 
179
217
  function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
180
- updateState(_toClaimKey32(policyNftId, claimId), newState);
218
+ _updateState(_toClaimKey32(policyNftId, claimId), newState);
181
219
  }
182
220
 
183
221
  //--- Payout ------------------------------------------------------------//
184
222
  function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
185
- create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
223
+ _create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
186
224
  }
187
225
 
188
226
  function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
189
- update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
227
+ _update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
190
228
  }
191
229
 
192
230
  function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
193
- updateState(_toPayoutKey32(policyNftId, payoutId), newState);
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);
194
273
  }
195
274
 
196
275
  //--- internal view/pure functions --------------------------------------//
@@ -205,4 +284,4 @@ contract InstanceStore is AccessManagedUpgradeable, KeyValueStore
205
284
  function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
206
285
  return payoutId.toKey32(policyNftId);
207
286
  }
208
- }
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
+ }
@@ -0,0 +1,28 @@
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 {IRegistry} from "../../registry/IRegistry.sol";
7
+
8
+ abstract contract Cloneable is
9
+ AccessManagedUpgradeable
10
+ {
11
+ IRegistry internal _registry;
12
+
13
+ /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
14
+ function __Cloneable_init(
15
+ address authority,
16
+ address registry
17
+ )
18
+ internal
19
+ onlyInitializing
20
+ {
21
+ __AccessManaged_init(authority);
22
+ _registry = IRegistry(registry);
23
+ }
24
+
25
+ function getRegistry() external view returns (IRegistry) {
26
+ return _registry;
27
+ }
28
+ }
@@ -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
+ }