@etherisc/gif-next 0.0.2-83889c4-030 → 0.0.2-839c4b8-393

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 (604) hide show
  1. package/README.md +137 -9
  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/authorization/IAccess.sol/IAccess.json +10 -0
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{shared/IAccessManagerExtended.sol/IAccessManagerExtended.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +605 -795
  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 +1234 -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 +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -616
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +763 -303
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +235 -123
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +145 -282
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +547 -77
  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 +1474 -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 +2043 -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 +1429 -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 +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -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 +2575 -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/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +59 -195
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +594 -101
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +510 -68
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +600 -235
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1889 -313
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1663 -845
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +498 -213
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +141 -103
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1500 -2103
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  97. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  109. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  111. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  112. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +142 -139
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +110 -10
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +140 -423
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +222 -177
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +184 -92
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +576 -243
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +223 -103
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +395 -52
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +147 -406
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +756 -372
  143. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  144. package/artifacts/contracts/pool/Pool.sol/Pool.json +144 -694
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +934 -533
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +230 -102
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +372 -170
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +166 -98
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +489 -231
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +195 -119
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +313 -8
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +362 -17
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +429 -100
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +195 -79
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +282 -271
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  174. package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +289 -150
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +567 -309
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +203 -103
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.json +258 -309
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +165 -129
  185. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  186. package/artifacts/contracts/product/Product.sol/Product.json +316 -606
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +384 -69
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +109 -147
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  201. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/Registry.sol/Registry.json +617 -133
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1908 -155
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +159 -276
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +148 -84
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
  221. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  222. package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +620 -559
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +197 -127
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +545 -237
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +131 -139
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -0
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IService.sol/IService.json +96 -1
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +125 -376
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +92 -104
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +261 -107
  280. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1653 -523
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +186 -116
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +315 -295
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +144 -104
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1725 -817
  296. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +184 -76
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  306. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +140 -4
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +24 -5
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  360. package/contracts/accounting/AccountingService.sol +274 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +47 -0
  363. package/contracts/authorization/AccessAdmin.sol +780 -0
  364. package/contracts/authorization/AccessAdminLib.sol +396 -0
  365. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  366. package/contracts/authorization/Authorization.sol +169 -0
  367. package/contracts/authorization/IAccess.sol +67 -0
  368. package/contracts/authorization/IAccessAdmin.sol +144 -0
  369. package/contracts/authorization/IAuthorization.sol +26 -0
  370. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  371. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  372. package/contracts/distribution/BasicDistribution.sol +140 -0
  373. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  374. package/contracts/distribution/Distribution.sol +125 -141
  375. package/contracts/distribution/DistributionService.sol +287 -137
  376. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  377. package/contracts/distribution/IDistributionComponent.sol +21 -42
  378. package/contracts/distribution/IDistributionService.sol +60 -26
  379. package/contracts/examples/fire/DamageLevel.sol +59 -0
  380. package/contracts/examples/fire/FirePool.sol +86 -0
  381. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  382. package/contracts/examples/fire/FireProduct.sol +433 -0
  383. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  384. package/contracts/examples/fire/FireUSD.sol +26 -0
  385. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  386. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  388. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  389. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  390. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  391. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  392. package/contracts/instance/BaseStore.sol +93 -0
  393. package/contracts/instance/BundleSet.sol +130 -0
  394. package/contracts/instance/IBaseStore.sol +37 -0
  395. package/contracts/instance/IInstance.sol +121 -47
  396. package/contracts/instance/IInstanceService.sol +80 -42
  397. package/contracts/instance/Instance.sol +251 -136
  398. package/contracts/instance/InstanceAdmin.sol +297 -249
  399. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  400. package/contracts/instance/InstanceReader.sol +478 -256
  401. package/contracts/instance/InstanceService.sol +389 -237
  402. package/contracts/instance/InstanceServiceManager.sol +8 -13
  403. package/contracts/instance/InstanceStore.sol +163 -121
  404. package/contracts/instance/ProductStore.sol +290 -0
  405. package/contracts/instance/RiskSet.sol +126 -0
  406. package/contracts/instance/TargetNames.sol +10 -0
  407. package/contracts/instance/base/BalanceStore.sol +15 -12
  408. package/contracts/instance/base/Cloneable.sol +2 -25
  409. package/contracts/instance/base/ObjectCounter.sol +1 -2
  410. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  411. package/contracts/instance/base/ObjectSet.sol +77 -0
  412. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  413. package/contracts/instance/module/IBundle.sol +6 -5
  414. package/contracts/instance/module/IComponents.sol +29 -21
  415. package/contracts/instance/module/IDistribution.sol +21 -9
  416. package/contracts/instance/module/IPolicy.sol +50 -29
  417. package/contracts/instance/module/IRisk.sol +5 -0
  418. package/contracts/mock/Dip.sol +1 -1
  419. package/contracts/oracle/BasicOracle.sol +44 -0
  420. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  421. package/contracts/oracle/IOracle.sol +25 -4
  422. package/contracts/oracle/IOracleComponent.sol +2 -1
  423. package/contracts/oracle/IOracleService.sol +2 -1
  424. package/contracts/oracle/Oracle.sol +60 -53
  425. package/contracts/oracle/OracleService.sol +120 -87
  426. package/contracts/oracle/OracleServiceManager.sol +8 -11
  427. package/contracts/pool/BasicPool.sol +161 -0
  428. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  429. package/contracts/pool/BundleService.sol +225 -135
  430. package/contracts/pool/BundleServiceManager.sol +8 -11
  431. package/contracts/pool/IBundleService.sol +43 -33
  432. package/contracts/pool/IPoolComponent.sol +20 -70
  433. package/contracts/pool/IPoolService.sol +97 -77
  434. package/contracts/pool/Pool.sol +196 -164
  435. package/contracts/pool/PoolLib.sol +341 -0
  436. package/contracts/pool/PoolService.sol +424 -263
  437. package/contracts/pool/PoolServiceManager.sol +6 -9
  438. package/contracts/product/ApplicationService.sol +159 -86
  439. package/contracts/product/ApplicationServiceManager.sol +6 -6
  440. package/contracts/product/BasicProduct.sol +48 -0
  441. package/contracts/product/BasicProductAuthorization.sol +63 -0
  442. package/contracts/product/ClaimService.sol +396 -212
  443. package/contracts/product/ClaimServiceManager.sol +6 -6
  444. package/contracts/product/IApplicationService.sol +29 -3
  445. package/contracts/product/IClaimService.sol +48 -11
  446. package/contracts/product/IPolicyService.sol +61 -37
  447. package/contracts/product/IPricingService.sol +11 -10
  448. package/contracts/product/IProductComponent.sol +29 -9
  449. package/contracts/product/IRiskService.sol +48 -0
  450. package/contracts/product/PolicyService.sol +450 -280
  451. package/contracts/product/PolicyServiceLib.sol +139 -0
  452. package/contracts/product/PolicyServiceManager.sol +6 -9
  453. package/contracts/product/PricingService.sol +93 -88
  454. package/contracts/product/PricingServiceManager.sol +6 -9
  455. package/contracts/product/Product.sol +261 -147
  456. package/contracts/product/RiskService.sol +189 -0
  457. package/contracts/product/RiskServiceManager.sol +39 -0
  458. package/contracts/registry/ChainNft.sol +72 -40
  459. package/contracts/registry/IRegistry.sol +84 -36
  460. package/contracts/registry/IRegistryService.sol +3 -10
  461. package/contracts/registry/IRelease.sol +29 -0
  462. package/contracts/registry/ITransferInterceptor.sol +1 -2
  463. package/contracts/registry/Registry.sol +378 -218
  464. package/contracts/registry/RegistryAdmin.sol +125 -171
  465. package/contracts/registry/RegistryAuthorization.sol +336 -0
  466. package/contracts/registry/RegistryService.sol +47 -72
  467. package/contracts/registry/RegistryServiceManager.sol +5 -10
  468. package/contracts/registry/ReleaseAdmin.sol +195 -0
  469. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  470. package/contracts/registry/ReleaseRegistry.sol +525 -0
  471. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  472. package/contracts/registry/TokenRegistry.sol +61 -59
  473. package/contracts/shared/Component.sol +71 -142
  474. package/contracts/shared/ComponentService.sol +462 -389
  475. package/contracts/shared/ComponentServiceManager.sol +10 -7
  476. package/contracts/shared/ContractLib.sol +312 -0
  477. package/contracts/shared/IComponent.sol +6 -18
  478. package/contracts/shared/IComponentService.sol +50 -41
  479. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  480. package/contracts/shared/ILifecycle.sol +3 -2
  481. package/contracts/shared/INftOwnable.sol +4 -0
  482. package/contracts/shared/IPolicyHolder.sol +12 -22
  483. package/contracts/shared/IRegisterable.sol +22 -1
  484. package/contracts/shared/IService.sol +10 -5
  485. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  486. package/contracts/shared/InstanceLinkedComponent.sol +96 -48
  487. package/contracts/shared/Lifecycle.sol +30 -72
  488. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  489. package/contracts/shared/NftOwnable.sol +33 -11
  490. package/contracts/shared/PolicyHolder.sol +20 -59
  491. package/contracts/shared/Registerable.sol +52 -21
  492. package/contracts/shared/RegistryLinked.sol +9 -14
  493. package/contracts/shared/Service.sol +31 -41
  494. package/contracts/shared/TokenHandler.sol +310 -26
  495. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  496. package/contracts/staking/IStaking.sol +272 -73
  497. package/contracts/staking/IStakingService.sol +54 -76
  498. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  499. package/contracts/staking/Staking.sol +540 -294
  500. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +72 -56
  501. package/contracts/staking/StakingManager.sol +14 -15
  502. package/contracts/staking/StakingReader.sol +72 -88
  503. package/contracts/staking/StakingService.sol +90 -175
  504. package/contracts/staking/StakingServiceManager.sol +9 -8
  505. package/contracts/staking/StakingStore.sol +1131 -335
  506. package/contracts/staking/TargetHandler.sol +132 -0
  507. package/contracts/staking/TargetManagerLib.sol +73 -46
  508. package/contracts/type/Amount.sol +31 -5
  509. package/contracts/type/Blocknumber.sol +22 -16
  510. package/contracts/type/ChainId.sol +101 -0
  511. package/contracts/type/ClaimId.sol +6 -1
  512. package/contracts/type/Fee.sol +8 -8
  513. package/contracts/type/Key32.sol +2 -2
  514. package/contracts/type/Key32Set.sol +62 -0
  515. package/contracts/type/NftId.sol +7 -0
  516. package/contracts/type/ObjectType.sol +200 -61
  517. package/contracts/type/PayoutId.sol +10 -10
  518. package/contracts/type/Referral.sol +1 -0
  519. package/contracts/type/RiskId.sol +38 -6
  520. package/contracts/type/RoleId.sol +121 -87
  521. package/contracts/type/Seconds.sol +40 -1
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/type/StateId.sol +15 -1
  524. package/contracts/type/String.sol +65 -0
  525. package/contracts/type/Timestamp.sol +14 -7
  526. package/contracts/type/UFixed.sol +62 -125
  527. package/contracts/type/Version.sol +57 -6
  528. package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
  529. package/contracts/{shared → upgradeability}/ProxyManager.sol +96 -49
  530. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  531. package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
  532. package/package.json +10 -7
  533. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  535. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  536. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  537. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  539. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  541. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  542. package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -387
  543. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  544. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
  545. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  546. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
  547. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  548. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  549. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  550. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  551. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  552. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  553. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  554. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  555. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  556. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  557. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  558. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  559. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  560. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  561. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  565. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  566. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  567. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  568. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  569. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  570. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  571. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  572. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -571
  573. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  574. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  575. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  576. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  577. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  578. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  579. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  580. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  581. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -444
  582. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  583. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  584. package/contracts/instance/BundleManager.sol +0 -126
  585. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  586. package/contracts/instance/base/ObjectManager.sol +0 -82
  587. package/contracts/instance/module/IAccess.sol +0 -46
  588. package/contracts/product/IProductService.sol +0 -33
  589. package/contracts/product/ProductService.sol +0 -124
  590. package/contracts/product/ProductServiceManager.sol +0 -42
  591. package/contracts/registry/ReleaseManager.sol +0 -600
  592. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  593. package/contracts/shared/AccessManagerCustom.sol +0 -736
  594. package/contracts/shared/AccessManagerExtended.sol +0 -470
  595. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  596. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  597. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  598. package/contracts/shared/ComponentVerifyingService.sol +0 -117
  599. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  600. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  601. package/contracts/shared/IKeyValueStore.sol +0 -53
  602. package/contracts/shared/InitializableCustom.sol +0 -177
  603. package/contracts/shared/KeyValueStore.sol +0 -127
  604. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
@@ -0,0 +1,109 @@
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
+ setStateTransition(CLAIM(), CONFIRMED(), CANCELLED());
70
+ }
71
+
72
+ function _setupPayoutLifecycle() private {
73
+ setInitialState(PAYOUT(), EXPECTED());
74
+ setStateTransition(PAYOUT(), EXPECTED(), PAID());
75
+ setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
76
+ }
77
+
78
+ function _setupRiskLifecycle() private {
79
+ setInitialState(RISK(), ACTIVE());
80
+ setStateTransition(RISK(), ACTIVE(), CLOSED());
81
+ }
82
+
83
+ function _setupRequestLifecycle() private {
84
+ setInitialState(REQUEST(), ACTIVE());
85
+ setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
86
+ setStateTransition(REQUEST(), ACTIVE(), FAILED());
87
+ setStateTransition(REQUEST(), FAILED(), FULFILLED());
88
+ setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
89
+ }
90
+
91
+ // dummy lifecycle only
92
+ function _setUpPoolLifecycle() private {
93
+ setInitialState(POOL(), ACTIVE());
94
+ }
95
+
96
+ // dummy lifecycle only
97
+ function _setUpProductLifecycle() private {
98
+ setInitialState(PRODUCT(), ACTIVE());
99
+ setInitialState(FEE(), ACTIVE());
100
+ }
101
+
102
+ // dummy lifecycles only
103
+ function _setUpDistributionLifecycle() private {
104
+ setInitialState(DISTRIBUTION(), ACTIVE());
105
+ setInitialState(DISTRIBUTOR(), ACTIVE());
106
+ setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
107
+ setInitialState(REFERRAL(), ACTIVE());
108
+ }
109
+ }
@@ -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,20 +1,21 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Amount} from "../../type/Amount.sol";
5
4
  import {NftId} from "../../type/NftId.sol";
6
5
  import {Fee} from "../../type/Fee.sol";
7
- import {Seconds} from "../../type/Seconds.sol";
8
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
- Seconds lifetime; // lifetime of bundle after creation
17
- Timestamp expiredAt; // no new policies starting with this timestamp
18
- Timestamp closedAt; // no open policies, locked amount = 0
19
20
  }
20
21
  }
@@ -1,52 +1,60 @@
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
4
  import {Amount} from "../../type/Amount.sol";
7
5
  import {Fee} from "../../type/Fee.sol";
8
6
  import {NftId} from "../../type/NftId.sol";
9
- import {RoleId} from "../../type/RoleId.sol";
10
7
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
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
- NftId productNftId;
18
- IERC20Metadata token;
15
+ // slot 1
19
16
  TokenHandler tokenHandler;
20
- address wallet;
21
- bytes data; // will hold component type specific additional info (eg encoded pool info)
22
17
  }
23
18
 
24
-
25
19
  struct ProductInfo {
26
- NftId distributionNftId;
27
- NftId poolNftId;
20
+ // slot 0
21
+ bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
22
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
23
+ bool hasDistribution; // flag to indicate if distribution is enabled
24
+ uint8 expectedNumberOfOracles; // expected number of oracles
25
+ uint8 numberOfOracles; // actual number of oracles
26
+ NftId poolNftId; // mandatory
27
+ NftId distributionNftId; // 0..1 (optional)
28
+ // slot 1
29
+ NftId [] oracleNftId; // 0..n (optional)
30
+ }
31
+
32
+ struct FeeInfo {
33
+ // slot 0
28
34
  Fee productFee; // product fee on net premium
35
+ // slot 1
29
36
  Fee processingFee; // product fee on payout amounts
37
+ // slot 2
30
38
  Fee distributionFee; // distribution fee for sales that do not include commissions
39
+ // slot 3
31
40
  Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
41
+ // slot 4
32
42
  Fee poolFee; // pool fee on net premium
43
+ // slot 5
33
44
  Fee stakingFee; // pool fee on staked capital from investor
45
+ // slot 6
34
46
  Fee performanceFee; // pool fee on profits from capital investors
35
47
  }
36
48
 
37
-
38
49
  struct PoolInfo {
39
- NftId productNftId; // the nft of the product this pool is linked to
40
- RoleId bundleOwnerRole; // the required role for bundle owners
41
- // TODO maxCapitalAmount -> maxBalanceAmount
42
- Amount maxCapitalAmount; // max capital amount allowed for pool
43
- bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
44
- bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
45
- bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
50
+ // slot 0
51
+ Amount maxBalanceAmount; // max balance amount allowed for pool
46
52
  UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
53
+ // slot 1
47
54
  UFixed retentionLevel; // amount of collateral held in pool (default 100%)
48
- Fee poolFee; // pool fee on net premium
49
- Fee stakingFee; // pool fee on staked capital from investor
50
- Fee performanceFee; // pool fee on profits from capital investors
55
+ bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
56
+ bool isProcessingConfirmedClaims; // custom logic for claims confirmation
57
+ bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
58
+ bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
51
59
  }
52
60
  }
@@ -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 "../../type/Amount.sol";
5
4
  import {DistributorType} from "../../type/DistributorType.sol";
6
5
  import {NftId} from "../../type/NftId.sol";
6
+ import {Seconds} from "../../type/Seconds.sol";
7
7
  import {Timestamp} from "../../type/Timestamp.sol";
8
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
 
@@ -11,74 +11,95 @@ import {Timestamp} from "../../type/Timestamp.sol";
11
11
 
12
12
  interface IPolicy {
13
13
 
14
- struct Premium {
14
+ struct PremiumInfo {
15
+ // slot 0
15
16
  // premium splitting per target wallet
16
17
  Amount productFeeAmount;
17
18
  Amount distributionFeeAndCommissionAmount;
19
+ // slot 1
18
20
  Amount poolPremiumAndFeeAmount;
19
21
 
20
22
  // detailed positions
21
23
  // this is the net premium calculated by the product
22
- uint256 netPremiumAmount;
24
+ Amount netPremiumAmount;
25
+ // slot 2
23
26
  // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
24
- uint256 fullPremiumAmount;
25
- // premium = fullPremium - discount
26
- uint256 premiumAmount;
27
- uint256 productFeeFixAmount;
28
- uint256 poolFeeFixAmount;
29
- uint256 bundleFeeFixAmount;
30
- uint256 distributionFeeFixAmount;
31
- uint256 productFeeVarAmount;
32
- uint256 poolFeeVarAmount;
33
- uint256 bundleFeeVarAmount;
34
- uint256 distributionFeeVarAmount;
35
- 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;
36
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)
37
- uint256 distributionOwnerFeeVarAmount;
45
+ Amount distributionOwnerFeeVarAmount;
46
+ // slot 8
38
47
  // this value is based on distributor type referenced in the referral
39
- uint256 commissionAmount;
48
+ Amount commissionAmount;
40
49
  // this is based on referral used
41
- uint256 discountAmount;
50
+ Amount discountAmount;
42
51
  }
43
52
 
44
53
  /// @dev policy data for the full policy lifecycle
45
54
  struct PolicyInfo {
55
+ // slot 0
46
56
  NftId productNftId;
47
57
  NftId bundleNftId;
48
- ReferralId referralId;
49
58
  RiskId riskId;
59
+ // slot 1
50
60
  Amount sumInsuredAmount;
51
61
  Amount premiumAmount; // expected premium at application time
52
- Amount premiumPaidAmount; // actual paid premium
53
- Seconds lifetime;
54
- // policy application data, no changes after applying for a policy
55
- bytes applicationData;
56
- bytes processData;
62
+ ReferralId referralId;
63
+ // slot 2
57
64
  uint16 claimsCount;
58
65
  uint16 openClaimsCount;
59
66
  Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
67
  Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
68
+ // slot 3
61
69
  Timestamp activatedAt; // time of underwriting
70
+ Seconds lifetime;
62
71
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
63
72
  Timestamp closedAt; // no locked capital (or declinedAt)
73
+ // slot 4
74
+ bytes applicationData;
75
+ // slot 5
76
+ bytes processData;
64
77
  }
65
78
 
66
79
  // claimId neeeds to be encoded policyNftId:claimId combination
67
80
  struct ClaimInfo {
81
+ // slot 0
68
82
  Amount claimAmount;
69
83
  Amount paidAmount;
70
- uint8 payoutsCount;
71
- uint8 openPayoutsCount;
72
- bytes submissionData; // claim submission data, no changes after submitting the claim
73
- bytes processData; // data that may include information supporting confirm or decline
74
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
75
92
  }
76
93
 
77
94
  // claimId neeeds to be encoded policyNftId:claimId combination
78
95
  struct PayoutInfo {
96
+ // slot 0
79
97
  ClaimId claimId;
80
98
  Amount amount;
81
- bytes data;
82
- 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
83
104
  }
84
105
  }
@@ -2,10 +2,15 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
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,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
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
6
  contract Dip is ERC20 {
7
7
 
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAuthorization} from "../../contracts/authorization/IAuthorization.sol";
5
+ import {NftId} from "../../contracts/type/NftId.sol";
6
+ import {Oracle} from "../../contracts/oracle/Oracle.sol";
7
+ import {RequestId} from "../../contracts/type/RequestId.sol";
8
+
9
+ contract BasicOracle is
10
+ Oracle
11
+ {
12
+
13
+ /// Function to provide reponse data releated to request id.
14
+ function respond(
15
+ RequestId requestId,
16
+ bytes memory responseData
17
+ )
18
+ external
19
+ virtual
20
+ restricted()
21
+ {
22
+ _respond(requestId, responseData);
23
+ }
24
+
25
+ function _initializeBasicOracle(
26
+ address registry,
27
+ NftId instanceNftId,
28
+ IAuthorization authorization,
29
+ address initialOwner,
30
+ string memory name
31
+ )
32
+ internal
33
+ virtual
34
+ onlyInitializing()
35
+ {
36
+
37
+ __Oracle_init(
38
+ registry,
39
+ instanceNftId,
40
+ authorization,
41
+ initialOwner,
42
+ name);
43
+ }
44
+ }
@@ -0,0 +1,53 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicOracle} from "./BasicOracle.sol";
6
+ import {ORACLE} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IOracle} from "./IOracle.sol";
9
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+
12
+
13
+ contract BasicOracleAuthorization
14
+ is Authorization
15
+ {
16
+
17
+ constructor(
18
+ string memory componentName,
19
+ string memory commitHash
20
+ )
21
+ Authorization(
22
+ componentName,
23
+ ORACLE(),
24
+ 3,
25
+ commitHash,
26
+ true,
27
+ false)
28
+ {}
29
+
30
+ function _setupServiceTargets()
31
+ internal
32
+ virtual override
33
+ {
34
+ _authorizeServiceDomain(ORACLE(), address(15));
35
+ }
36
+
37
+ function _setupTargetAuthorizations()
38
+ internal
39
+ virtual override
40
+ {
41
+ IAccess.FunctionInfo[] storage functions;
42
+
43
+ // authorize public role (open access to any account, only allows to lock target)
44
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
45
+ _authorize(functions, IOracle.request.selector, "request");
46
+ _authorize(functions, IOracle.cancel.selector, "cancel");
47
+
48
+ // authorize public role (open access to any account, only allows to lock target)
49
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
50
+ _authorize(functions, BasicOracle.respond.selector, "respond");
51
+ }
52
+ }
53
+