@etherisc/gif-next 0.0.2-b20ce14-335 → 0.0.2-b214449-558

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 (711) hide show
  1. package/README.md +77 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -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 +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +250 -579
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +258 -312
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +243 -325
  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 +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -2173
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +238 -112
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -2820
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1916 -0
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1417 -436
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +272 -387
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -153
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  88. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  89. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  104. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  109. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  111. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  112. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +228 -284
  113. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  115. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -229
  117. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  119. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  121. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  122. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +318 -442
  123. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  125. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  127. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  129. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +240 -69
  131. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  133. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +543 -273
  135. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  136. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +377 -414
  137. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  139. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  141. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  143. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  145. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  147. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  148. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +451 -457
  149. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  151. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  153. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  155. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  156. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +115 -145
  157. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IClaimService.sol/IClaimService.json} +301 -206
  159. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +921 -0
  161. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IPricingService.sol/IPricingService.json} +230 -230
  163. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  165. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  166. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +64 -61
  167. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  169. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +812 -0
  171. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  172. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  173. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  175. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  176. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  177. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  178. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  179. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  181. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  182. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  183. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  185. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  187. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  188. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  189. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  190. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  191. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  192. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  193. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  194. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -249
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  200. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  208. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  209. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  210. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +60 -182
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  226. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +152 -125
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  228. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  231. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  232. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  233. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  235. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  237. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  239. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  241. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  243. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  245. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  246. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  247. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  249. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  250. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  251. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  252. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  253. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  254. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  255. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  256. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  257. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  258. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  259. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  261. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  262. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  263. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  265. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  266. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  269. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  271. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  272. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  273. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  274. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  275. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  276. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  277. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  279. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  281. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  283. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  285. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  287. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  289. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  291. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  292. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  293. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  294. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  295. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  296. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  297. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  299. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  301. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  303. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  305. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  307. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  309. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  311. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  313. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  315. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  317. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  319. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  321. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  323. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  325. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  327. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  331. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  333. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  335. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  336. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  337. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  339. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  341. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  343. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  344. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  345. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  346. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  347. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  349. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  350. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  351. package/contracts/accounting/AccountingService.sol +262 -0
  352. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  353. package/contracts/accounting/IAccountingService.sol +45 -0
  354. package/contracts/authorization/AccessAdmin.sol +689 -0
  355. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  356. package/contracts/authorization/Authorization.sol +337 -0
  357. package/contracts/authorization/IAccess.sol +49 -0
  358. package/contracts/authorization/IAccessAdmin.sol +143 -0
  359. package/contracts/authorization/IAuthorization.sol +74 -0
  360. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  361. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  362. package/contracts/distribution/BasicDistribution.sol +139 -0
  363. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  364. package/contracts/{components → distribution}/Distribution.sol +165 -162
  365. package/contracts/distribution/DistributionService.sol +357 -0
  366. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  367. package/contracts/distribution/IDistributionComponent.sol +52 -0
  368. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  369. package/contracts/examples/fire/DamageLevel.sol +59 -0
  370. package/contracts/examples/fire/FirePool.sol +90 -0
  371. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  372. package/contracts/examples/fire/FireProduct.sol +438 -0
  373. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  374. package/contracts/examples/fire/FireUSD.sol +26 -0
  375. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  376. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  377. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  378. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  379. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  381. package/contracts/instance/BundleSet.sol +130 -0
  382. package/contracts/instance/IInstance.sol +48 -80
  383. package/contracts/instance/IInstanceService.sol +40 -36
  384. package/contracts/instance/Instance.sol +164 -227
  385. package/contracts/instance/InstanceAdmin.sol +442 -0
  386. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  387. package/contracts/instance/InstanceReader.sol +372 -64
  388. package/contracts/instance/InstanceService.sol +275 -349
  389. package/contracts/instance/InstanceServiceManager.sol +14 -29
  390. package/contracts/instance/InstanceStore.sol +298 -0
  391. package/contracts/instance/RiskSet.sol +118 -0
  392. package/contracts/instance/base/BalanceStore.sol +123 -0
  393. package/contracts/instance/base/Cloneable.sol +28 -0
  394. package/contracts/instance/base/ObjectCounter.sol +20 -0
  395. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  396. package/contracts/instance/base/ObjectSet.sol +77 -0
  397. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  398. package/contracts/instance/module/IBundle.sol +6 -9
  399. package/contracts/instance/module/IComponents.sol +28 -18
  400. package/contracts/instance/module/IDistribution.sol +6 -6
  401. package/contracts/instance/module/IPolicy.sol +44 -36
  402. package/contracts/instance/module/IRisk.sol +4 -1
  403. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  404. package/contracts/oracle/BasicOracle.sol +47 -0
  405. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  406. package/contracts/oracle/IOracle.sol +36 -0
  407. package/contracts/oracle/IOracleComponent.sol +33 -0
  408. package/contracts/oracle/IOracleService.sol +66 -0
  409. package/contracts/oracle/Oracle.sol +156 -0
  410. package/contracts/oracle/OracleService.sol +310 -0
  411. package/contracts/oracle/OracleServiceManager.sol +39 -0
  412. package/contracts/pool/BasicPool.sol +175 -0
  413. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  414. package/contracts/pool/BundleService.sol +395 -0
  415. package/contracts/pool/BundleServiceManager.sol +39 -0
  416. package/contracts/{instance/service → pool}/IBundleService.sol +50 -37
  417. package/contracts/pool/IPoolComponent.sol +62 -0
  418. package/contracts/pool/IPoolService.sol +165 -0
  419. package/contracts/pool/Pool.sol +345 -0
  420. package/contracts/pool/PoolLib.sol +216 -0
  421. package/contracts/pool/PoolService.sol +757 -0
  422. package/contracts/pool/PoolServiceManager.sol +39 -0
  423. package/contracts/product/ApplicationService.sol +259 -0
  424. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  425. package/contracts/product/BasicProduct.sol +51 -0
  426. package/contracts/product/BasicProductAuthorization.sol +56 -0
  427. package/contracts/product/ClaimService.sol +632 -0
  428. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  429. package/contracts/{instance/service → product}/IApplicationService.sol +19 -31
  430. package/contracts/product/IClaimService.sol +135 -0
  431. package/contracts/product/IPolicyService.sol +91 -0
  432. package/contracts/product/IPricingService.sol +39 -0
  433. package/contracts/product/IProductComponent.sol +62 -0
  434. package/contracts/product/IRiskService.sol +33 -0
  435. package/contracts/product/PolicyService.sol +725 -0
  436. package/contracts/product/PolicyServiceManager.sol +39 -0
  437. package/contracts/product/PricingService.sol +304 -0
  438. package/contracts/product/PricingServiceManager.sol +39 -0
  439. package/contracts/product/Product.sol +463 -0
  440. package/contracts/product/RiskService.sol +145 -0
  441. package/contracts/product/RiskServiceManager.sol +39 -0
  442. package/contracts/registry/ChainNft.sol +79 -40
  443. package/contracts/registry/IRegistry.sol +95 -30
  444. package/contracts/registry/IRegistryService.sol +34 -40
  445. package/contracts/registry/IRelease.sol +26 -0
  446. package/contracts/registry/ITransferInterceptor.sol +1 -2
  447. package/contracts/registry/Registry.sol +460 -197
  448. package/contracts/registry/RegistryAdmin.sol +354 -0
  449. package/contracts/registry/RegistryService.sol +89 -130
  450. package/contracts/registry/RegistryServiceManager.sol +23 -32
  451. package/contracts/registry/ReleaseAdmin.sol +245 -0
  452. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  453. package/contracts/registry/ReleaseRegistry.sol +511 -0
  454. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  455. package/contracts/registry/TokenRegistry.sol +261 -64
  456. package/contracts/shared/Component.sol +227 -0
  457. package/contracts/shared/ComponentService.sol +692 -0
  458. package/contracts/shared/ComponentServiceManager.sol +38 -0
  459. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  460. package/contracts/shared/ContractLib.sol +253 -0
  461. package/contracts/shared/IComponent.sol +61 -0
  462. package/contracts/shared/IComponentService.sol +112 -0
  463. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  464. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  465. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  466. package/contracts/shared/INftOwnable.sol +4 -2
  467. package/contracts/shared/IPolicyHolder.sol +23 -14
  468. package/contracts/shared/IRegisterable.sol +23 -1
  469. package/contracts/shared/IRegistryLinked.sol +0 -1
  470. package/contracts/shared/IService.sol +12 -5
  471. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  472. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  473. package/contracts/shared/KeyValueStore.sol +131 -0
  474. package/contracts/shared/Lifecycle.sol +88 -0
  475. package/contracts/shared/NftIdSet.sol +65 -0
  476. package/contracts/shared/NftOwnable.sol +34 -27
  477. package/contracts/shared/PolicyHolder.sol +22 -41
  478. package/contracts/shared/Registerable.sol +55 -20
  479. package/contracts/shared/RegistryLinked.sol +9 -19
  480. package/contracts/shared/Service.sol +33 -40
  481. package/contracts/shared/TokenHandler.sol +321 -13
  482. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  483. package/contracts/staking/IStaking.sol +165 -0
  484. package/contracts/staking/IStakingService.sol +165 -0
  485. package/contracts/staking/StakeManagerLib.sol +224 -0
  486. package/contracts/staking/Staking.sol +526 -0
  487. package/contracts/staking/StakingLifecycle.sol +23 -0
  488. package/contracts/staking/StakingManager.sol +52 -0
  489. package/contracts/staking/StakingReader.sol +190 -0
  490. package/contracts/staking/StakingService.sol +430 -0
  491. package/contracts/staking/StakingServiceManager.sol +45 -0
  492. package/contracts/staking/StakingStore.sol +605 -0
  493. package/contracts/staking/TargetManagerLib.sol +211 -0
  494. package/contracts/{types → type}/AddressSet.sol +1 -1
  495. package/contracts/type/Amount.sol +150 -0
  496. package/contracts/{types → type}/Blocknumber.sol +26 -3
  497. package/contracts/{types → type}/ClaimId.sol +6 -1
  498. package/contracts/{types → type}/Fee.sol +24 -22
  499. package/contracts/{types → type}/Key32.sol +2 -2
  500. package/contracts/type/Key32Set.sol +62 -0
  501. package/contracts/{types → type}/NftId.sol +21 -16
  502. package/contracts/{types → type}/NftIdSet.sol +2 -2
  503. package/contracts/type/ObjectType.sol +303 -0
  504. package/contracts/{types → type}/PayoutId.sol +10 -10
  505. package/contracts/{types → type}/Referral.sol +2 -1
  506. package/contracts/type/RequestId.sol +75 -0
  507. package/contracts/type/RiskId.sol +74 -0
  508. package/contracts/type/RoleId.sol +182 -0
  509. package/contracts/type/Seconds.sol +101 -0
  510. package/contracts/type/Selector.sol +107 -0
  511. package/contracts/{types → type}/StateId.sol +41 -2
  512. package/contracts/type/String.sol +53 -0
  513. package/contracts/{types → type}/Timestamp.sol +16 -7
  514. package/contracts/{types → type}/UFixed.sol +40 -121
  515. package/contracts/{types → type}/Version.sol +19 -7
  516. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  517. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  518. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  519. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  520. package/package.json +11 -7
  521. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  522. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  523. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  524. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  525. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  526. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  528. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  529. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  530. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  531. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  533. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  534. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  536. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  537. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  538. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  540. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  543. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  545. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  547. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  550. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  552. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  554. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
  556. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  558. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  560. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  562. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  564. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  566. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1543
  575. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  577. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1449
  579. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
  581. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  583. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  585. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  587. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  589. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  591. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  593. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  594. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  596. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  598. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  601. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  603. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  605. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  607. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  609. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  611. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  613. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  614. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  615. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  616. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  617. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  619. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  621. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  623. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  625. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  627. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  629. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  633. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  635. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  639. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  641. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  643. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  645. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  647. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  649. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  651. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  654. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  656. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  658. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  660. package/contracts/components/Component.sol +0 -253
  661. package/contracts/components/IComponent.sol +0 -76
  662. package/contracts/components/IDistributionComponent.sol +0 -71
  663. package/contracts/components/IPoolComponent.sol +0 -113
  664. package/contracts/components/IProductComponent.sol +0 -40
  665. package/contracts/components/Pool.sol +0 -302
  666. package/contracts/components/Product.sol +0 -371
  667. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  668. package/contracts/instance/BundleManager.sol +0 -126
  669. package/contracts/instance/Cloneable.sol +0 -51
  670. package/contracts/instance/InstanceAccessManager.sol +0 -527
  671. package/contracts/instance/ObjectManager.sol +0 -82
  672. package/contracts/instance/base/ComponentService.sol +0 -121
  673. package/contracts/instance/base/KeyValueStore.sol +0 -180
  674. package/contracts/instance/base/Lifecycle.sol +0 -117
  675. package/contracts/instance/module/IAccess.sol +0 -54
  676. package/contracts/instance/module/ISetup.sol +0 -33
  677. package/contracts/instance/module/ITreasury.sol +0 -23
  678. package/contracts/instance/service/ApplicationService.sol +0 -355
  679. package/contracts/instance/service/BundleService.sol +0 -443
  680. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  681. package/contracts/instance/service/ClaimService.sol +0 -239
  682. package/contracts/instance/service/DistributionService.sol +0 -431
  683. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  684. package/contracts/instance/service/IClaimService.sol +0 -92
  685. package/contracts/instance/service/IPolicyService.sol +0 -139
  686. package/contracts/instance/service/IPoolService.sol +0 -102
  687. package/contracts/instance/service/IProductService.sol +0 -40
  688. package/contracts/instance/service/PolicyService.sol +0 -571
  689. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  690. package/contracts/instance/service/PoolService.sol +0 -336
  691. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  692. package/contracts/instance/service/ProductService.sol +0 -210
  693. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  694. package/contracts/registry/RegistryAccessManager.sol +0 -216
  695. package/contracts/registry/ReleaseManager.sol +0 -324
  696. package/contracts/shared/ContractDeployerLib.sol +0 -72
  697. package/contracts/test/TestFee.sol +0 -25
  698. package/contracts/test/TestRegisterable.sol +0 -18
  699. package/contracts/test/TestRoleId.sol +0 -14
  700. package/contracts/test/TestService.sol +0 -25
  701. package/contracts/test/TestToken.sol +0 -26
  702. package/contracts/test/TestVersion.sol +0 -44
  703. package/contracts/test/TestVersionable.sol +0 -17
  704. package/contracts/types/Amount.sol +0 -70
  705. package/contracts/types/ChainId.sol +0 -38
  706. package/contracts/types/NumberId.sol +0 -52
  707. package/contracts/types/ObjectType.sol +0 -157
  708. package/contracts/types/RiskId.sol +0 -43
  709. package/contracts/types/RoleId.sol +0 -97
  710. package/contracts/types/Seconds.sol +0 -54
  711. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,113 @@
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(), PAUSED());
48
+ setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
49
+ setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
50
+ setStateTransition(BUNDLE(), PAUSED(), CLOSED());
51
+ }
52
+
53
+ function _setupPolicyLifecycle() private {
54
+ setInitialState(POLICY(), APPLIED());
55
+ setStateTransition(POLICY(), APPLIED(), REVOKED());
56
+ setStateTransition(POLICY(), APPLIED(), DECLINED());
57
+ setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
58
+ setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
59
+ }
60
+
61
+ function _setupPremiumLifecycle() private {
62
+ setInitialState(PREMIUM(), EXPECTED());
63
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
64
+ }
65
+
66
+ function _setupClaimLifecycle() private {
67
+ setInitialState(CLAIM(), SUBMITTED());
68
+ setStateTransition(CLAIM(), SUBMITTED(), REVOKED());
69
+ setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
70
+ setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
71
+ setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
72
+ }
73
+
74
+ function _setupPayoutLifecycle() private {
75
+ setInitialState(PAYOUT(), EXPECTED());
76
+ setStateTransition(PAYOUT(), EXPECTED(), PAID());
77
+ setStateTransition(PAYOUT(), EXPECTED(), CANCELLED());
78
+ }
79
+
80
+ function _setupRiskLifecycle() private {
81
+ setInitialState(RISK(), ACTIVE());
82
+ setStateTransition(RISK(), ACTIVE(), PAUSED());
83
+ setStateTransition(RISK(), PAUSED(), ACTIVE());
84
+ setStateTransition(RISK(), PAUSED(), ARCHIVED());
85
+ }
86
+
87
+ function _setupRequestLifecycle() private {
88
+ setInitialState(REQUEST(), ACTIVE());
89
+ setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
90
+ setStateTransition(REQUEST(), ACTIVE(), FAILED());
91
+ setStateTransition(REQUEST(), FAILED(), FULFILLED());
92
+ setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
93
+ }
94
+
95
+ // dummy lifecycle only
96
+ function _setUpPoolLifecycle() private {
97
+ setInitialState(POOL(), ACTIVE());
98
+ }
99
+
100
+ // dummy lifecycle only
101
+ function _setUpProductLifecycle() private {
102
+ setInitialState(PRODUCT(), ACTIVE());
103
+ setInitialState(FEE(), ACTIVE());
104
+ }
105
+
106
+ // dummy lifecycles only
107
+ function _setUpDistributionLifecycle() private {
108
+ setInitialState(DISTRIBUTION(), ACTIVE());
109
+ setInitialState(DISTRIBUTOR(), ACTIVE());
110
+ setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
111
+ setInitialState(REFERRAL(), ACTIVE());
112
+ }
113
+ }
@@ -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,11 +1,11 @@
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 {Amount} from "../../type/Amount.sol";
5
+ import {NftId} from "../../type/NftId.sol";
6
+ import {Fee} from "../../type/Fee.sol";
7
+ import {Seconds} from "../../type/Seconds.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
9
 
10
10
  interface IBundle {
11
11
 
@@ -13,10 +13,7 @@ interface IBundle {
13
13
  NftId poolNftId;
14
14
  Fee fee; // bundle fee on net premium amounts
15
15
  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;
16
+ Timestamp activatedAt;
20
17
  Timestamp expiredAt; // no new policies starting with this timestamp
21
18
  Timestamp closedAt; // no open policies, locked amount = 0
22
19
  }
@@ -3,12 +3,11 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
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";
6
+ import {Amount} from "../../type/Amount.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {NftId} from "../../type/NftId.sol";
10
9
  import {TokenHandler} from "../../shared/TokenHandler.sol";
11
- import {UFixed} from "../../types/UFixed.sol";
10
+ import {UFixed} from "../../type/UFixed.sol";
12
11
 
13
12
  interface IComponents {
14
13
 
@@ -16,26 +15,37 @@ interface IComponents {
16
15
  string name; // component name (needs to be unique per instance)
17
16
  IERC20Metadata token;
18
17
  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
22
18
  bytes data; // will hold component type specific additional info (eg encoded pool info)
23
19
  }
24
20
 
21
+ struct ProductInfo {
22
+ bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
23
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
24
+ bool hasDistribution; // flag to indicate if distribution is enabled
25
+ uint8 expectedNumberOfOracles; // expected number of oracles
26
+ uint8 numberOfOracles; // actual number of oracles
27
+ NftId poolNftId; // mandatory
28
+ NftId distributionNftId; // 0..1 (optional)
29
+ NftId [] oracleNftId; // 0..n (optional)
30
+ }
31
+
32
+ struct FeeInfo {
33
+ Fee productFee; // product fee on net premium
34
+ Fee processingFee; // product fee on payout amounts
35
+ Fee distributionFee; // distribution fee for sales that do not include commissions
36
+ Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
37
+ Fee poolFee; // pool fee on net premium
38
+ Fee stakingFee; // pool fee on staked capital from investor
39
+ Fee performanceFee; // pool fee on profits from capital investors
40
+ }
41
+
25
42
  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
- uint256 maxCapitalAmount; // max capital amount allowed for pool
30
- uint256 balanceAmount; // current pool balance (accounting view)
31
- uint256 feeAmount; // accumulated fee amount
32
- bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
43
+ Amount maxBalanceAmount; // max balance amount allowed for pool
44
+ bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
45
+ bool isProcessingConfirmedClaims; // custom logic for claims confirmation
33
46
  bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
34
47
  bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
35
48
  UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
36
49
  UFixed retentionLevel; // amount of collateral held in pool (default 100%)
37
- Fee poolFee; // pool fee on net premium
38
- Fee stakingFee; // pool fee on staked capital from investor
39
- Fee performanceFee; // pool fee on profits from capital investors
40
50
  }
41
51
  }
@@ -1,10 +1,11 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {DistributorType} from "../../types/DistributorType.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {Timestamp} from "../../types/Timestamp.sol";
7
- import {UFixed} from "../../types/UFixed.sol";
4
+ import {Amount} from "../../type/Amount.sol";
5
+ import {DistributorType} from "../../type/DistributorType.sol";
6
+ import {NftId} from "../../type/NftId.sol";
7
+ import {Timestamp} from "../../type/Timestamp.sol";
8
+ import {UFixed} from "../../type/UFixed.sol";
8
9
 
9
10
  interface IDistribution {
10
11
 
@@ -24,8 +25,7 @@ interface IDistribution {
24
25
  DistributorType distributorType;
25
26
  bool active;
26
27
  bytes data;
27
- uint256 sumCommisions;
28
- uint256 numPoliciesSold;
28
+ uint32 numPoliciesSold;
29
29
  }
30
30
 
31
31
  struct ReferralInfo {
@@ -1,55 +1,63 @@
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
+ // premium splitting per target wallet
16
+ Amount productFeeAmount;
17
+ Amount distributionFeeAndCommissionAmount;
18
+ Amount poolPremiumAndFeeAmount;
19
+
20
+ // detailed positions
15
21
  // this is the net premium calculated by the product
16
- uint256 netPremiumAmount;
22
+ Amount netPremiumAmount;
17
23
  // 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;
24
+ Amount fullPremiumAmount;
25
+ // effective premium = fullPremium - discount
26
+ Amount premiumAmount;
27
+ Amount productFeeFixAmount;
28
+ Amount poolFeeFixAmount;
29
+ Amount bundleFeeFixAmount;
30
+ Amount distributionFeeFixAmount;
31
+ Amount productFeeVarAmount;
32
+ Amount poolFeeVarAmount;
33
+ Amount bundleFeeVarAmount;
34
+ Amount distributionFeeVarAmount;
35
+ Amount distributionOwnerFeeFixAmount;
30
36
  // 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;
37
+ Amount distributionOwnerFeeVarAmount;
32
38
  // this value is based on distributor type referenced in the referral
33
- uint256 commissionAmount;
39
+ Amount commissionAmount;
34
40
  // this is based on referral used
35
- uint256 discountAmount;
41
+ Amount discountAmount;
36
42
  }
37
43
 
38
44
  /// @dev policy data for the full policy lifecycle
39
45
  struct PolicyInfo {
46
+ // application data, no changes after applying for a policy
40
47
  NftId productNftId;
41
48
  NftId bundleNftId;
42
49
  ReferralId referralId;
43
50
  RiskId riskId;
44
- uint256 sumInsuredAmount;
45
- uint256 premiumAmount;
46
- uint256 premiumPaidAmount; // when lower than premium amount: max payout decreased accordingly
51
+ Amount sumInsuredAmount;
52
+ Amount premiumAmount; // expected premium at application time
47
53
  Seconds lifetime;
48
54
  bytes applicationData;
49
- bytes policyData;
55
+ // policy data that may change during the lifecycle
56
+ bytes processData;
50
57
  uint16 claimsCount;
51
58
  uint16 openClaimsCount;
52
- Amount payoutAmount;
59
+ Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
+ Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
53
61
  Timestamp activatedAt; // time of underwriting
54
62
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
55
63
  Timestamp closedAt; // no locked capital (or declinedAt)
@@ -59,10 +67,10 @@ interface IPolicy {
59
67
  struct ClaimInfo {
60
68
  Amount claimAmount;
61
69
  Amount paidAmount;
62
- uint8 payoutsCount;
63
- uint8 openPayoutsCount;
64
- bytes data;
65
- // TODO consider to add processData that may include information supporting confirm or decline
70
+ uint24 payoutsCount;
71
+ uint24 openPayoutsCount;
72
+ bytes submissionData; // use case specific claim submission data, no changes after submitting the claim
73
+ bytes processData; // use case specific data that may include information supporting confirm or decline
66
74
  Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
67
75
  }
68
76
 
@@ -70,8 +78,8 @@ interface IPolicy {
70
78
  struct PayoutInfo {
71
79
  ClaimId claimId;
72
80
  Amount amount;
73
- // TODO consider to add a beneficiary address that will be the receiver of the payout tokens
74
- bytes data;
75
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
81
+ address beneficiary; // for address(0) beneficiary is policy nft owner
82
+ bytes data; // use case specific supporting data
83
+ Timestamp paidAt; // timestamp for actual payout
76
84
  }
77
85
  }
@@ -1,11 +1,14 @@
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 {
8
10
  NftId productNftId;
11
+ Timestamp createdAt;
9
12
  bytes data;
10
13
  }
11
14
  }
@@ -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()
@@ -0,0 +1,47 @@
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
+ address token
32
+ )
33
+ internal
34
+ virtual
35
+ onlyInitializing()
36
+ {
37
+
38
+ _initializeOracle(
39
+ registry,
40
+ instanceNftId,
41
+ authorization,
42
+ initialOwner,
43
+ name,
44
+ token,
45
+ "");
46
+ }
47
+ }
@@ -0,0 +1,37 @@
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(string memory componentName)
18
+ Authorization(componentName, ORACLE())
19
+ {}
20
+
21
+ function _setupTargetAuthorizations()
22
+ internal
23
+ virtual override
24
+ {
25
+ IAccess.FunctionInfo[] storage functions;
26
+
27
+ // authorize public role (open access to any account, only allows to lock target)
28
+ functions = _authorizeForTarget(getMainTargetName(), getServiceRole(ORACLE()));
29
+ _authorize(functions, IOracle.request.selector, "request");
30
+ _authorize(functions, IOracle.cancel.selector, "cancel");
31
+
32
+ // authorize public role (open access to any account, only allows to lock target)
33
+ functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
34
+ _authorize(functions, BasicOracle.respond.selector, "respond");
35
+ }
36
+ }
37
+
@@ -0,0 +1,36 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+ import {RequestId} from "../type/RequestId.sol";
6
+ import {Timestamp} from "../type/Timestamp.sol";
7
+
8
+
9
+ interface IOracle {
10
+
11
+ struct RequestInfo {
12
+ NftId requesterNftId; // originator of the request
13
+ string callbackMethodName; // callback function of the requestor to call to provide response data
14
+ NftId oracleNftId; // responsible oracle component
15
+ bytes requestData;
16
+ bytes responseData;
17
+ Timestamp respondedAt; // response timestamp
18
+ Timestamp expiredAt; // expiry timestamp
19
+ bool isCancelled;
20
+ }
21
+
22
+
23
+ /// @dev Callback function for oracle service to notify this oracle component to retreive some oracle data.
24
+ function request(
25
+ RequestId requestId,
26
+ NftId requesterId,
27
+ bytes calldata requestData,
28
+ Timestamp expiryAt
29
+ ) external;
30
+
31
+
32
+ /// @dev Callback function for oracle service to notify this oracle component that the specified oracle request has ben cancelled by the requestor.
33
+ function cancel(
34
+ RequestId requestId
35
+ ) external;
36
+ }
@@ -0,0 +1,33 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Fee} from "../type/Fee.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {RequestId} from "../type/RequestId.sol";
10
+ import {UFixed} from "../type/UFixed.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+
13
+ interface IOracleComponent is IInstanceLinkedComponent {
14
+ error ErrorOracleNotImplemented(string methodName);
15
+
16
+ /// @dev callback method for requesting some data from the oracle
17
+ function request(
18
+ RequestId requestId,
19
+ NftId requesterNftId,
20
+ bytes calldata requestData,
21
+ Timestamp expiryAt
22
+ ) external;
23
+
24
+
25
+ /// @dev callback method for cancelling the specified oracle request
26
+ function cancel(
27
+ RequestId requestId
28
+ ) external;
29
+
30
+
31
+ /// @dev returns true iff the component needs to be called when selling/renewing policis
32
+ function isVerifying() external view returns (bool verifying);
33
+ }