@etherisc/gif-next 0.0.2-b51dcb9-674 → 0.0.2-b51e065-216

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 (732) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +280 -331
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +271 -284
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionService.sol/IDistributionService.json} +615 -707
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1472 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2045 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1423 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1639 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2484 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +588 -95
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +516 -56
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +587 -218
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1849 -772
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +535 -192
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +215 -99
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1776 -780
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → oracle/IOracleService.sol/IOracleService.json} +275 -256
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -253
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/BasicPool.sol/BasicPool.json} +440 -293
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  136. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +750 -378
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +446 -485
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1552 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +894 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IApplicationService.sol/IApplicationService.json} +305 -236
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +218 -76
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +222 -208
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  180. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +496 -31
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +320 -106
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +984 -128
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +391 -243
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +212 -96
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -141
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +281 -207
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1535 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +854 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  230. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +130 -136
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  232. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/IComponentService.sol/IComponentService.json} +516 -748
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -57
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -90
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +617 -8
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1646 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1196 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +2054 -0
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +842 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1425 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +782 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  339. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  354. package/contracts/accounting/AccountingService.sol +274 -0
  355. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  356. package/contracts/accounting/IAccountingService.sol +47 -0
  357. package/contracts/authorization/AccessAdmin.sol +780 -0
  358. package/contracts/authorization/AccessAdminLib.sol +396 -0
  359. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  360. package/contracts/authorization/Authorization.sol +169 -0
  361. package/contracts/authorization/IAccess.sol +67 -0
  362. package/contracts/authorization/IAccessAdmin.sol +144 -0
  363. package/contracts/authorization/IAuthorization.sol +27 -0
  364. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  365. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  366. package/contracts/distribution/BasicDistribution.sol +141 -0
  367. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  368. package/contracts/distribution/Distribution.sol +247 -0
  369. package/contracts/distribution/DistributionService.sol +448 -0
  370. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  371. package/contracts/distribution/IDistributionComponent.sol +45 -0
  372. package/contracts/distribution/IDistributionService.sol +115 -0
  373. package/contracts/examples/fire/DamageLevel.sol +59 -0
  374. package/contracts/examples/fire/FirePool.sol +86 -0
  375. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  376. package/contracts/examples/fire/FireProduct.sol +433 -0
  377. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  378. package/contracts/examples/fire/FireUSD.sol +26 -0
  379. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  380. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  382. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  383. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleProduct.sol +391 -0
  385. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  386. package/contracts/instance/BundleSet.sol +130 -0
  387. package/contracts/instance/IInstance.sol +117 -49
  388. package/contracts/instance/IInstanceService.sol +81 -38
  389. package/contracts/instance/Instance.sol +251 -134
  390. package/contracts/instance/InstanceAdmin.sol +383 -0
  391. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  392. package/contracts/instance/InstanceReader.sol +507 -243
  393. package/contracts/instance/InstanceService.sol +387 -196
  394. package/contracts/instance/InstanceServiceManager.sol +14 -29
  395. package/contracts/instance/InstanceStore.sol +157 -71
  396. package/contracts/instance/RiskSet.sol +126 -0
  397. package/contracts/instance/base/BalanceStore.sol +121 -0
  398. package/contracts/instance/base/Cloneable.sol +28 -0
  399. package/contracts/instance/base/ObjectCounter.sol +20 -0
  400. package/contracts/instance/base/ObjectLifecycle.sol +108 -0
  401. package/contracts/instance/base/ObjectSet.sol +77 -0
  402. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  403. package/contracts/instance/module/IBundle.sol +9 -11
  404. package/contracts/instance/module/IComponents.sol +44 -23
  405. package/contracts/instance/module/IDistribution.sol +25 -13
  406. package/contracts/instance/module/IPolicy.sol +64 -36
  407. package/contracts/instance/module/IRisk.sol +6 -1
  408. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  409. package/contracts/oracle/BasicOracle.sol +45 -0
  410. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  411. package/contracts/oracle/IOracle.sol +41 -0
  412. package/contracts/oracle/IOracleComponent.sol +33 -0
  413. package/contracts/oracle/IOracleService.sol +66 -0
  414. package/contracts/oracle/Oracle.sol +154 -0
  415. package/contracts/oracle/OracleService.sol +310 -0
  416. package/contracts/oracle/OracleServiceManager.sol +39 -0
  417. package/contracts/pool/BasicPool.sol +162 -0
  418. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  419. package/contracts/pool/BundleService.sol +386 -0
  420. package/contracts/pool/BundleServiceManager.sol +39 -0
  421. package/contracts/pool/IBundleService.sol +116 -0
  422. package/contracts/pool/IPoolComponent.sol +62 -0
  423. package/contracts/pool/IPoolService.sol +170 -0
  424. package/contracts/pool/Pool.sol +333 -0
  425. package/contracts/pool/PoolLib.sol +341 -0
  426. package/contracts/pool/PoolService.sol +614 -0
  427. package/contracts/pool/PoolServiceManager.sol +39 -0
  428. package/contracts/product/ApplicationService.sol +327 -0
  429. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  430. package/contracts/product/BasicProduct.sol +49 -0
  431. package/contracts/product/BasicProductAuthorization.sol +63 -0
  432. package/contracts/product/ClaimService.sol +641 -0
  433. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  434. package/contracts/{instance/service → product}/IApplicationService.sol +37 -11
  435. package/contracts/{instance/service → product}/IClaimService.sol +64 -19
  436. package/contracts/product/IPolicyService.sol +102 -0
  437. package/contracts/product/IPricingService.sol +40 -0
  438. package/contracts/product/IProductComponent.sol +62 -0
  439. package/contracts/product/IRiskService.sol +48 -0
  440. package/contracts/product/PolicyService.sol +645 -0
  441. package/contracts/product/PolicyServiceLib.sol +139 -0
  442. package/contracts/product/PolicyServiceManager.sol +39 -0
  443. package/contracts/product/PricingService.sol +306 -0
  444. package/contracts/product/PricingServiceManager.sol +39 -0
  445. package/contracts/product/Product.sol +483 -0
  446. package/contracts/product/RiskService.sol +190 -0
  447. package/contracts/product/RiskServiceManager.sol +39 -0
  448. package/contracts/registry/ChainNft.sol +79 -40
  449. package/contracts/registry/IRegistry.sol +104 -30
  450. package/contracts/registry/IRegistryService.sol +34 -38
  451. package/contracts/registry/IRelease.sol +29 -0
  452. package/contracts/registry/ITransferInterceptor.sol +1 -2
  453. package/contracts/registry/Registry.sol +466 -197
  454. package/contracts/registry/RegistryAdmin.sol +188 -0
  455. package/contracts/registry/RegistryAuthorization.sol +284 -0
  456. package/contracts/registry/RegistryService.sol +90 -135
  457. package/contracts/registry/RegistryServiceManager.sol +23 -32
  458. package/contracts/registry/ReleaseAdmin.sol +195 -0
  459. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  460. package/contracts/registry/ReleaseRegistry.sol +520 -0
  461. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  462. package/contracts/registry/TokenRegistry.sol +263 -65
  463. package/contracts/shared/Component.sol +210 -0
  464. package/contracts/shared/ComponentService.sol +679 -0
  465. package/contracts/shared/ComponentServiceManager.sol +38 -0
  466. package/contracts/shared/ContractLib.sol +311 -0
  467. package/contracts/shared/IComponent.sol +58 -0
  468. package/contracts/shared/IComponentService.sol +111 -0
  469. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  470. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  471. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  472. package/contracts/shared/INftOwnable.sol +6 -2
  473. package/contracts/shared/IPolicyHolder.sol +16 -21
  474. package/contracts/shared/IRegisterable.sol +22 -1
  475. package/contracts/shared/IService.sol +12 -7
  476. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  477. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  478. package/contracts/shared/KeyValueStore.sol +131 -0
  479. package/contracts/shared/Lifecycle.sol +88 -0
  480. package/contracts/shared/NftIdSet.sol +65 -0
  481. package/contracts/shared/NftOwnable.sol +36 -25
  482. package/contracts/shared/PolicyHolder.sol +21 -52
  483. package/contracts/shared/Registerable.sol +55 -24
  484. package/contracts/shared/RegistryLinked.sol +9 -14
  485. package/contracts/shared/Service.sol +36 -41
  486. package/contracts/shared/TokenHandler.sol +320 -13
  487. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  488. package/contracts/staking/IStaking.sol +195 -0
  489. package/contracts/staking/IStakingService.sol +170 -0
  490. package/contracts/staking/Staking.sol +605 -0
  491. package/contracts/staking/StakingLib.sol +281 -0
  492. package/contracts/staking/StakingLifecycle.sol +23 -0
  493. package/contracts/staking/StakingManager.sol +52 -0
  494. package/contracts/staking/StakingReader.sol +199 -0
  495. package/contracts/staking/StakingService.sol +468 -0
  496. package/contracts/staking/StakingServiceManager.sol +45 -0
  497. package/contracts/staking/StakingStore.sol +606 -0
  498. package/contracts/staking/TargetManagerLib.sol +211 -0
  499. package/contracts/{types → type}/AddressSet.sol +1 -1
  500. package/contracts/{types → type}/Amount.sol +44 -3
  501. package/contracts/{types → type}/Blocknumber.sol +26 -3
  502. package/contracts/{types → type}/ClaimId.sol +6 -1
  503. package/contracts/{types → type}/Fee.sol +22 -21
  504. package/contracts/{types → type}/Key32.sol +2 -2
  505. package/contracts/type/Key32Set.sol +62 -0
  506. package/contracts/{types → type}/NftId.sol +21 -16
  507. package/contracts/{types → type}/NftIdSet.sol +2 -2
  508. package/contracts/type/ObjectType.sol +307 -0
  509. package/contracts/{types → type}/PayoutId.sol +10 -10
  510. package/contracts/{types → type}/Referral.sol +2 -1
  511. package/contracts/type/RequestId.sol +75 -0
  512. package/contracts/type/RiskId.sol +75 -0
  513. package/contracts/type/RoleId.sol +180 -0
  514. package/contracts/type/Seconds.sol +105 -0
  515. package/contracts/type/Selector.sol +107 -0
  516. package/contracts/{types → type}/StateId.sol +41 -2
  517. package/contracts/type/String.sol +65 -0
  518. package/contracts/{types → type}/Timestamp.sol +16 -7
  519. package/contracts/type/UFixed.sol +262 -0
  520. package/contracts/{types → type}/Version.sol +58 -7
  521. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  522. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  523. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  524. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  525. package/package.json +12 -8
  526. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  527. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  528. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  533. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  536. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  539. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  540. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  541. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  543. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  548. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  550. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  552. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  555. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -918
  557. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -648
  559. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1288
  561. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
  563. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
  565. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
  567. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1556
  569. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  571. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +0 -493
  573. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -840
  577. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -442
  582. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1281
  584. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
  586. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
  588. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  589. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
  590. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -1004
  592. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -688
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  599. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  601. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  602. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  604. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  605. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  606. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  608. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  609. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  610. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  611. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  612. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  613. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  616. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  617. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  618. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  620. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  622. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  623. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  624. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  625. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  626. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  628. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  629. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  630. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  631. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  632. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
  634. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  636. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  638. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  640. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  642. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
  644. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  646. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  648. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  649. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  650. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  652. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  654. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  656. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  658. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  660. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  662. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  664. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  666. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  669. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  671. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  673. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  675. package/contracts/components/Component.sol +0 -272
  676. package/contracts/components/Distribution.sol +0 -285
  677. package/contracts/components/IComponent.sol +0 -90
  678. package/contracts/components/IDistributionComponent.sol +0 -71
  679. package/contracts/components/IPoolComponent.sol +0 -114
  680. package/contracts/components/IProductComponent.sol +0 -41
  681. package/contracts/components/Pool.sol +0 -302
  682. package/contracts/components/Product.sol +0 -375
  683. package/contracts/instance/BundleManager.sol +0 -126
  684. package/contracts/instance/Cloneable.sol +0 -51
  685. package/contracts/instance/InstanceAccessManager.sol +0 -541
  686. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  687. package/contracts/instance/ObjectManager.sol +0 -82
  688. package/contracts/instance/base/ComponentService.sol +0 -148
  689. package/contracts/instance/base/KeyValueStore.sol +0 -149
  690. package/contracts/instance/base/Lifecycle.sol +0 -120
  691. package/contracts/instance/module/IAccess.sol +0 -54
  692. package/contracts/instance/module/ISetup.sol +0 -33
  693. package/contracts/instance/module/ITreasury.sol +0 -23
  694. package/contracts/instance/service/ApplicationService.sol +0 -186
  695. package/contracts/instance/service/BundleService.sol +0 -382
  696. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  697. package/contracts/instance/service/ClaimService.sol +0 -437
  698. package/contracts/instance/service/DistributionService.sol +0 -348
  699. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  700. package/contracts/instance/service/IBundleService.sol +0 -118
  701. package/contracts/instance/service/IDistributionService.sol +0 -87
  702. package/contracts/instance/service/IPolicyService.sol +0 -80
  703. package/contracts/instance/service/IPoolService.sol +0 -114
  704. package/contracts/instance/service/IPricingService.sol +0 -37
  705. package/contracts/instance/service/IProductService.sol +0 -40
  706. package/contracts/instance/service/PolicyService.sol +0 -376
  707. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  708. package/contracts/instance/service/PoolService.sol +0 -403
  709. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  710. package/contracts/instance/service/PricingService.sol +0 -275
  711. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  712. package/contracts/instance/service/ProductService.sol +0 -210
  713. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  714. package/contracts/registry/RegistryAccessManager.sol +0 -216
  715. package/contracts/registry/ReleaseManager.sol +0 -324
  716. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  717. package/contracts/shared/ContractDeployerLib.sol +0 -72
  718. package/contracts/test/TestFee.sol +0 -25
  719. package/contracts/test/TestRegisterable.sol +0 -18
  720. package/contracts/test/TestRoleId.sol +0 -14
  721. package/contracts/test/TestService.sol +0 -25
  722. package/contracts/test/TestToken.sol +0 -26
  723. package/contracts/test/TestVersion.sol +0 -44
  724. package/contracts/test/TestVersionable.sol +0 -17
  725. package/contracts/types/ChainId.sol +0 -38
  726. package/contracts/types/NumberId.sol +0 -52
  727. package/contracts/types/ObjectType.sol +0 -161
  728. package/contracts/types/RiskId.sol +0 -43
  729. package/contracts/types/RoleId.sol +0 -97
  730. package/contracts/types/Seconds.sol +0 -54
  731. package/contracts/types/UFixed.sol +0 -326
  732. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -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,20 @@
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 = 0;
15
+
16
+ function _createNextRequestId() internal returns (RequestId requestId) {
17
+ _requestCounter++;
18
+ requestId = RequestIdLib.toRequestId(_requestCounter);
19
+ }
20
+ }
@@ -0,0 +1,108 @@
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, FEE} 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(), CLOSED());
48
+ }
49
+
50
+ function _setupPolicyLifecycle() private {
51
+ setInitialState(POLICY(), APPLIED());
52
+ setStateTransition(POLICY(), APPLIED(), REVOKED());
53
+ setStateTransition(POLICY(), APPLIED(), DECLINED());
54
+ setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
55
+ setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
56
+ }
57
+
58
+ function _setupPremiumLifecycle() private {
59
+ setInitialState(PREMIUM(), EXPECTED());
60
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
61
+ }
62
+
63
+ function _setupClaimLifecycle() private {
64
+ setInitialState(CLAIM(), SUBMITTED());
65
+ setStateTransition(CLAIM(), SUBMITTED(), REVOKED());
66
+ setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
67
+ setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
68
+ setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
69
+ }
70
+
71
+ function _setupPayoutLifecycle() private {
72
+ setInitialState(PAYOUT(), EXPECTED());
73
+ setStateTransition(PAYOUT(), EXPECTED(), PAID());
74
+ setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
75
+ }
76
+
77
+ function _setupRiskLifecycle() private {
78
+ setInitialState(RISK(), ACTIVE());
79
+ setStateTransition(RISK(), ACTIVE(), CLOSED());
80
+ }
81
+
82
+ function _setupRequestLifecycle() private {
83
+ setInitialState(REQUEST(), ACTIVE());
84
+ setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
85
+ setStateTransition(REQUEST(), ACTIVE(), FAILED());
86
+ setStateTransition(REQUEST(), FAILED(), FULFILLED());
87
+ setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
88
+ }
89
+
90
+ // dummy lifecycle only
91
+ function _setUpPoolLifecycle() private {
92
+ setInitialState(POOL(), ACTIVE());
93
+ }
94
+
95
+ // dummy lifecycle only
96
+ function _setUpProductLifecycle() private {
97
+ setInitialState(PRODUCT(), ACTIVE());
98
+ setInitialState(FEE(), ACTIVE());
99
+ }
100
+
101
+ // dummy lifecycles only
102
+ function _setUpDistributionLifecycle() private {
103
+ setInitialState(DISTRIBUTION(), ACTIVE());
104
+ setInitialState(DISTRIBUTOR(), ACTIVE());
105
+ setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
106
+ setInitialState(REFERRAL(), ACTIVE());
107
+ }
108
+ }
@@ -0,0 +1,77 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Cloneable} from "./Cloneable.sol";
5
+
6
+ import {LibKey32Set} from "../../type/Key32Set.sol";
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {Key32} from "../../type/Key32.sol";
9
+
10
+ contract ObjectSet is
11
+ Cloneable
12
+ {
13
+ using LibKey32Set for LibKey32Set.Set;
14
+
15
+ event LogObjectSetInitialized(address instance);
16
+
17
+ error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
18
+
19
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
20
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
21
+ address internal _instanceAddress;
22
+
23
+ /// @dev This initializer needs to be called from the instance itself.
24
+ function initialize(address authority, address registry)
25
+ external
26
+ initializer()
27
+ {
28
+ _instanceAddress = msg.sender;
29
+ __Cloneable_init(authority, registry);
30
+
31
+ emit LogObjectSetInitialized(address(_instanceAddress));
32
+ }
33
+
34
+ function getInstanceAddress() external view returns (address) {
35
+ return _instanceAddress;
36
+ }
37
+
38
+ function _add(NftId componentNftId, Key32 key) internal {
39
+ LibKey32Set.Set storage allSet = _allObjects[componentNftId];
40
+ LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
41
+
42
+ allSet.add(key);
43
+ activeSet.add(key);
44
+ }
45
+
46
+ function _activate(NftId componentNftId, Key32 key) internal {
47
+ _activeObjects[componentNftId].add(key);
48
+ }
49
+
50
+ function _deactivate(NftId componentNftId, Key32 key) internal {
51
+ _activeObjects[componentNftId].remove(key);
52
+ }
53
+
54
+ function _objects(NftId componentNftId) internal view returns (uint256) {
55
+ return _allObjects[componentNftId].size();
56
+ }
57
+
58
+ function _contains(NftId componentNftId, Key32 key) internal view returns (bool) {
59
+ return _allObjects[componentNftId].contains(key);
60
+ }
61
+
62
+ function _getObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
63
+ return _allObjects[componentNftId].getElementAt(idx);
64
+ }
65
+
66
+ function _activeObjs(NftId componentNftId) internal view returns (uint256) {
67
+ return _activeObjects[componentNftId].size();
68
+ }
69
+
70
+ function _isActive(NftId componentNftId, Key32 key) internal view returns (bool) {
71
+ return _activeObjects[componentNftId].contains(key);
72
+ }
73
+
74
+ function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
75
+ return _activeObjects[componentNftId].getElementAt(idx);
76
+ }
77
+ }
@@ -0,0 +1,30 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBundle} from "../module/IBundle.sol";
5
+ import {IInstance} from "../IInstance.sol";
6
+ import {IRisk} from "../module/IRisk.sol";
7
+ import {NftId} from "../../type/NftId.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+
10
+
11
+ library ObjectSetHelperLib {
12
+
13
+ function getRiskInfo(address instanceAddress, RiskId riskId) public view returns (IRisk.RiskInfo memory) {
14
+
15
+ return IInstance(instanceAddress).getInstanceReader().getRiskInfo(riskId);
16
+ }
17
+
18
+ function getProductNftId(address instanceAddress, RiskId riskId) public view returns (NftId) {
19
+ return getRiskInfo(instanceAddress, riskId).productNftId;
20
+ }
21
+
22
+ function getBundleInfo(address instanceAddress, NftId bundleNftId) public view returns (IBundle.BundleInfo memory) {
23
+ return IInstance(instanceAddress).getInstanceReader().getBundleInfo(bundleNftId);
24
+ }
25
+
26
+ function getPoolNftId(address instanceAddress, NftId bundleNftId) public view returns (NftId) {
27
+ return getBundleInfo(instanceAddress, bundleNftId).poolNftId;
28
+ }
29
+
30
+ }
@@ -1,23 +1,21 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../../types/Amount.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {Fee} from "../../types/Fee.sol";
7
- import {Seconds} from "../../types/Seconds.sol";
8
- import {Timestamp} from "../../types/Timestamp.sol";
4
+ import {NftId} from "../../type/NftId.sol";
5
+ import {Fee} from "../../type/Fee.sol";
6
+ import {Timestamp} from "../../type/Timestamp.sol";
9
7
 
10
8
  interface IBundle {
11
9
 
12
10
  struct BundleInfo {
11
+ // slot 0
12
+ Timestamp activatedAt;
13
+ Timestamp expiredAt; // no new policies starting with this timestamp
14
+ Timestamp closedAt; // no open policies, locked amount = 0
13
15
  NftId poolNftId;
16
+ // slot 1
14
17
  Fee fee; // bundle fee on net premium amounts
18
+ // slot 2
15
19
  bytes filter; // required conditions for applications to be considered for collateralization by this bundle
16
- Amount capitalAmount; // net stakings + net premiums - payouts
17
- Amount lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= capital amount)
18
- Amount feeAmount; // accumulated fee amount
19
- Seconds lifetime;
20
- Timestamp expiredAt; // no new policies starting with this timestamp
21
- Timestamp closedAt; // no open policies, locked amount = 0
22
20
  }
23
21
  }
@@ -1,41 +1,62 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {Amount} from "../../types/Amount.sol";
7
- import {Fee} from "../../types/Fee.sol";
8
- import {NftId} from "../../types/NftId.sol";
9
- import {RoleId} from "../../types/RoleId.sol";
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {Fee} from "../../type/Fee.sol";
6
+ import {NftId} from "../../type/NftId.sol";
10
7
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
- import {UFixed} from "../../types/UFixed.sol";
8
+ import {UFixed} from "../../type/UFixed.sol";
12
9
 
13
10
  interface IComponents {
14
11
 
15
12
  struct ComponentInfo {
13
+ // slot 0
16
14
  string name; // component name (needs to be unique per instance)
17
- IERC20Metadata token;
15
+ // slot 1
18
16
  TokenHandler tokenHandler;
19
- address wallet;
20
- Amount balanceAmount; // calculated balance (may not necessarily match withg wallet balance)
21
- Amount feeAmount; // accumulated fees belonging to component owner
17
+ // slot 2
22
18
  bytes data; // will hold component type specific additional info (eg encoded pool info)
23
19
  }
24
20
 
25
- struct PoolInfo {
26
- NftId productNftId; // the nft of the product this pool is linked to
27
- RoleId bundleOwnerRole; // the required role for bundle owners
28
- // TODO maxCapitalAmount -> maxBalanceAmount
29
- Amount maxCapitalAmount; // max capital amount allowed for pool
30
- Amount balanceAmount; // current pool balance (accounting view)
31
- Amount feeAmount; // accumulated fee amount
32
- bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
33
- bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
34
- bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
35
- UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
36
- UFixed retentionLevel; // amount of collateral held in pool (default 100%)
21
+ struct ProductInfo {
22
+ // slot 0
23
+ bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
24
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
25
+ bool hasDistribution; // flag to indicate if distribution is enabled
26
+ uint8 expectedNumberOfOracles; // expected number of oracles
27
+ uint8 numberOfOracles; // actual number of oracles
28
+ NftId poolNftId; // mandatory
29
+ NftId distributionNftId; // 0..1 (optional)
30
+ // slot 1
31
+ NftId [] oracleNftId; // 0..n (optional)
32
+ }
33
+
34
+ struct FeeInfo {
35
+ // slot 0
36
+ Fee productFee; // product fee on net premium
37
+ // slot 1
38
+ Fee processingFee; // product fee on payout amounts
39
+ // slot 2
40
+ Fee distributionFee; // distribution fee for sales that do not include commissions
41
+ // slot 3
42
+ Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
43
+ // slot 4
37
44
  Fee poolFee; // pool fee on net premium
45
+ // slot 5
38
46
  Fee stakingFee; // pool fee on staked capital from investor
47
+ // slot 6
39
48
  Fee performanceFee; // pool fee on profits from capital investors
40
49
  }
50
+
51
+ struct PoolInfo {
52
+ // slot 0
53
+ Amount maxBalanceAmount; // max balance amount allowed for pool
54
+ UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
55
+ // slot 1
56
+ UFixed retentionLevel; // amount of collateral held in pool (default 100%)
57
+ bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
58
+ bool isProcessingConfirmedClaims; // custom logic for claims confirmation
59
+ bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
60
+ bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
61
+ }
41
62
  }
@@ -1,41 +1,53 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../../types/Amount.sol";
5
- import {DistributorType} from "../../types/DistributorType.sol";
6
- import {NftId} from "../../types/NftId.sol";
7
- import {Timestamp} from "../../types/Timestamp.sol";
8
- import {UFixed} from "../../types/UFixed.sol";
4
+ import {DistributorType} from "../../type/DistributorType.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Seconds} from "../../type/Seconds.sol";
7
+ import {Timestamp} from "../../type/Timestamp.sol";
8
+ import {UFixed} from "../../type/UFixed.sol";
9
9
 
10
10
  interface IDistribution {
11
11
 
12
12
  struct DistributorTypeInfo {
13
- string name;
13
+ // slot 0
14
14
  UFixed minDiscountPercentage;
15
+ NftId distributionNftId;
16
+ // slot 1
15
17
  UFixed maxDiscountPercentage;
16
- UFixed commissionPercentage;
17
18
  uint32 maxReferralCount;
18
- uint32 maxReferralLifetime;
19
+ Seconds maxReferralLifetime;
19
20
  bool allowSelfReferrals;
20
21
  bool allowRenewals;
22
+ // slot 2
23
+ UFixed commissionPercentage;
24
+ // slot 3
25
+ string name;
26
+ // slot 4
21
27
  bytes data;
22
28
  }
23
29
 
24
30
  struct DistributorInfo {
31
+ // slot 0
25
32
  DistributorType distributorType;
26
33
  bool active;
27
- bytes data;
28
- Amount commissionAmount;
29
34
  uint32 numPoliciesSold;
35
+ // slot 1
36
+ bytes data;
30
37
  }
31
38
 
32
- struct ReferralInfo {
39
+ struct ReferralInfo {
40
+ // slot 0
41
+ NftId distributionNftId;
33
42
  NftId distributorNftId;
34
- string referralCode;
35
- UFixed discountPercentage;
36
43
  uint32 maxReferrals;
37
44
  uint32 usedReferrals;
45
+ // slot 1
46
+ UFixed discountPercentage;
38
47
  Timestamp expiryAt;
48
+ // slot 2
49
+ string referralCode;
50
+ // slot 3
39
51
  bytes data;
40
52
  }
41
53
 
@@ -1,77 +1,105 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../../types/Amount.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {ClaimId} from "../../types/ClaimId.sol";
7
- import {ReferralId} from "../../types/Referral.sol";
8
- import {RiskId} from "../../types/RiskId.sol";
9
- import {Seconds} from "../../types/Seconds.sol";
10
- import {Timestamp} from "../../types/Timestamp.sol";
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {ClaimId} from "../../type/ClaimId.sol";
7
+ import {ReferralId} from "../../type/Referral.sol";
8
+ import {RiskId} from "../../type/RiskId.sol";
9
+ import {Seconds} from "../../type/Seconds.sol";
10
+ import {Timestamp} from "../../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicy {
13
13
 
14
- struct Premium {
14
+ struct PremiumInfo {
15
+ // slot 0
16
+ // premium splitting per target wallet
17
+ Amount productFeeAmount;
18
+ Amount distributionFeeAndCommissionAmount;
19
+ // slot 1
20
+ Amount poolPremiumAndFeeAmount;
21
+
22
+ // detailed positions
15
23
  // this is the net premium calculated by the product
16
- uint256 netPremiumAmount;
24
+ Amount netPremiumAmount;
25
+ // slot 2
17
26
  // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
18
- uint256 fullPremiumAmount;
19
- // premium = fullPremium - discount
20
- uint256 premiumAmount;
21
- uint256 productFeeFixAmount;
22
- uint256 poolFeeFixAmount;
23
- uint256 bundleFeeFixAmount;
24
- uint256 distributionFeeFixAmount;
25
- uint256 productFeeVarAmount;
26
- uint256 poolFeeVarAmount;
27
- uint256 bundleFeeVarAmount;
28
- uint256 distributionFeeVarAmount;
29
- uint256 distributionOwnerFeeFixAmount;
27
+ Amount fullPremiumAmount;
28
+ // effective premium = fullPremium - discount
29
+ Amount premiumAmount;
30
+ // slot 3
31
+ Amount productFeeFixAmount;
32
+ Amount poolFeeFixAmount;
33
+ // slot 4
34
+ Amount bundleFeeFixAmount;
35
+ Amount distributionFeeFixAmount;
36
+ // slot 5
37
+ Amount productFeeVarAmount;
38
+ Amount poolFeeVarAmount;
39
+ // slot 6
40
+ Amount bundleFeeVarAmount;
41
+ Amount distributionFeeVarAmount;
42
+ // slot 7
43
+ Amount distributionOwnerFeeFixAmount;
30
44
  // this is the remaining amount when the commission and discount are subtracted from the distribution fee variable part (must be at least the minDistributionOwnerFee)
31
- uint256 distributionOwnerFeeVarAmount;
45
+ Amount distributionOwnerFeeVarAmount;
46
+ // slot 8
32
47
  // this value is based on distributor type referenced in the referral
33
- uint256 commissionAmount;
48
+ Amount commissionAmount;
34
49
  // this is based on referral used
35
- uint256 discountAmount;
50
+ Amount discountAmount;
36
51
  }
37
52
 
38
53
  /// @dev policy data for the full policy lifecycle
39
54
  struct PolicyInfo {
55
+ // slot 0
40
56
  NftId productNftId;
41
57
  NftId bundleNftId;
42
- ReferralId referralId;
43
58
  RiskId riskId;
59
+ // slot 1
44
60
  Amount sumInsuredAmount;
45
- Amount premiumAmount;
46
- Amount premiumPaidAmount; // when lower than premium amount: max payout decreased accordingly
47
- Seconds lifetime;
48
- bytes applicationData;
49
- bytes policyData;
61
+ Amount premiumAmount; // expected premium at application time
62
+ ReferralId referralId;
63
+ // slot 2
50
64
  uint16 claimsCount;
51
65
  uint16 openClaimsCount;
52
66
  Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
53
67
  Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
68
+ // slot 3
54
69
  Timestamp activatedAt; // time of underwriting
70
+ Seconds lifetime;
55
71
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
56
72
  Timestamp closedAt; // no locked capital (or declinedAt)
73
+ // slot 4
74
+ bytes applicationData;
75
+ // slot 5
76
+ bytes processData;
57
77
  }
58
78
 
59
79
  // claimId neeeds to be encoded policyNftId:claimId combination
60
80
  struct ClaimInfo {
81
+ // slot 0
61
82
  Amount claimAmount;
62
83
  Amount paidAmount;
63
- uint8 payoutsCount;
64
- uint8 openPayoutsCount;
65
- bytes data;
66
- // TODO consider to add processData that may include information supporting confirm or decline
67
84
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
85
+ uint24 payoutsCount;
86
+ // slot 1
87
+ uint24 openPayoutsCount;
88
+ // slot 2
89
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
90
+ // slot 3
91
+ bytes processData; // use case specific data that may include information supporting confirm or decline
68
92
  }
69
93
 
70
94
  // claimId neeeds to be encoded policyNftId:claimId combination
71
95
  struct PayoutInfo {
96
+ // slot 0
72
97
  ClaimId claimId;
73
98
  Amount amount;
74
- bytes data;
75
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
99
+ Timestamp paidAt; // timestamp for actual payout
100
+ // slot 1
101
+ address beneficiary; // for address(0) beneficiary is policy nft owner
102
+ // slot 2
103
+ bytes data; // use case specific supporting data
76
104
  }
77
105
  }
@@ -1,11 +1,16 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
4
+ import {NftId} from "../../type/NftId.sol";
5
+ import {Timestamp} from "../../type/Timestamp.sol";
5
6
 
6
7
  interface IRisk {
8
+
7
9
  struct RiskInfo {
10
+ // slot 0
8
11
  NftId productNftId;
12
+ Timestamp createdAt;
13
+ // slot 1
9
14
  bytes data;
10
15
  }
11
16
  }
@@ -1,14 +1,14 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
4
+ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
5
5
 
6
- contract USDC is ERC20 {
6
+ contract Dip is ERC20 {
7
7
 
8
8
  // https://etherscan.io/token/0xc719d010b63e5bbf2c0551872cd5316ed26acd83#readContract
9
- string public constant NAME = "USDC - DUMMY";
10
- string public constant SYMBOL = "USDC";
11
- uint8 public constant DECIMALS = 6;
9
+ string public constant NAME = "Decentralized Insurance Protocol - DUMMY";
10
+ string public constant SYMBOL = "DIP";
11
+ uint8 public constant DECIMALS = 18;
12
12
  uint256 public constant INITIAL_SUPPLY = 10**9 * 10**DECIMALS; // 1 Billion 1'000'000'000
13
13
  // decimals == 18 (openzeppelin erc20 default)
14
14
  constructor()