@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-ea09fbf-195

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 (714) hide show
  1. package/README.md +83 -22
  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/{instance/service/IPoolService.sol/IPoolService.json → accounting/IAccountingService.sol/IAccountingService.json} +327 -380
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -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 +414 -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 +1092 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -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 +470 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +259 -572
  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 +502 -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 +470 -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 +470 -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 +502 -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/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +263 -115
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +228 -123
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +288 -233
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1800 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1610 -560
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +262 -445
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -157
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1780 -739
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +228 -284
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +302 -175
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -229
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +318 -442
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +820 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +347 -60
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1309 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +377 -414
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1626 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +792 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +451 -457
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1538 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +860 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +138 -163
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1082 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +968 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +64 -61
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1320 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +464 -29
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  193. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.json +953 -127
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +360 -249
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  212. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +280 -180
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1597 -0
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -0
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +142 -132
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  228. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +152 -125
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1221 -0
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  243. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  245. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.json +69 -5
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +66 -109
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1067 -0
  277. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1272 -0
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  353. package/contracts/accounting/AccountingService.sol +262 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +45 -0
  356. package/contracts/authorization/AccessAdmin.sol +659 -0
  357. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  358. package/contracts/authorization/Authorization.sol +289 -0
  359. package/contracts/authorization/IAccess.sol +49 -0
  360. package/contracts/authorization/IAccessAdmin.sol +140 -0
  361. package/contracts/authorization/IAuthorization.sol +60 -0
  362. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  363. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  364. package/contracts/distribution/BasicDistribution.sol +139 -0
  365. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  366. package/contracts/{components → distribution}/Distribution.sol +170 -163
  367. package/contracts/distribution/DistributionService.sol +357 -0
  368. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  369. package/contracts/distribution/IDistributionComponent.sol +52 -0
  370. package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
  371. package/contracts/examples/fire/DamageLevel.sol +59 -0
  372. package/contracts/examples/fire/FirePool.sol +90 -0
  373. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  374. package/contracts/examples/fire/FireProduct.sol +438 -0
  375. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  376. package/contracts/examples/fire/FireUSD.sol +26 -0
  377. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  378. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  379. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  380. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  381. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  383. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  384. package/contracts/instance/BundleSet.sol +130 -0
  385. package/contracts/instance/IInstance.sol +43 -37
  386. package/contracts/instance/IInstanceService.sol +37 -49
  387. package/contracts/instance/Instance.sol +142 -106
  388. package/contracts/instance/InstanceAdmin.sol +326 -0
  389. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  390. package/contracts/instance/InstanceReader.sol +363 -60
  391. package/contracts/instance/InstanceService.sol +258 -384
  392. package/contracts/instance/InstanceServiceManager.sol +14 -29
  393. package/contracts/instance/InstanceStore.sol +174 -95
  394. package/contracts/instance/RiskSet.sol +118 -0
  395. package/contracts/instance/base/BalanceStore.sol +123 -0
  396. package/contracts/instance/base/Cloneable.sol +28 -0
  397. package/contracts/instance/base/ObjectCounter.sol +20 -0
  398. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  399. package/contracts/instance/base/ObjectSet.sol +77 -0
  400. package/contracts/instance/base/ObjectSetHelper.sol +30 -0
  401. package/contracts/instance/module/IAccess.sol +4 -12
  402. package/contracts/instance/module/IBundle.sol +6 -9
  403. package/contracts/instance/module/IComponents.sol +28 -18
  404. package/contracts/instance/module/IDistribution.sol +6 -6
  405. package/contracts/instance/module/IPolicy.sol +48 -35
  406. package/contracts/instance/module/IRisk.sol +4 -1
  407. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  408. package/contracts/oracle/BasicOracle.sol +47 -0
  409. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  410. package/contracts/oracle/IOracle.sol +36 -0
  411. package/contracts/oracle/IOracleComponent.sol +33 -0
  412. package/contracts/oracle/IOracleService.sol +66 -0
  413. package/contracts/oracle/Oracle.sol +156 -0
  414. package/contracts/oracle/OracleService.sol +310 -0
  415. package/contracts/oracle/OracleServiceManager.sol +39 -0
  416. package/contracts/pool/BasicPool.sol +175 -0
  417. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  418. package/contracts/pool/BundleService.sol +425 -0
  419. package/contracts/pool/BundleServiceManager.sol +39 -0
  420. package/contracts/pool/IBundleService.sol +121 -0
  421. package/contracts/pool/IPoolComponent.sol +62 -0
  422. package/contracts/pool/IPoolService.sol +153 -0
  423. package/contracts/pool/Pool.sol +345 -0
  424. package/contracts/pool/PoolService.sol +615 -0
  425. package/contracts/pool/PoolServiceManager.sol +39 -0
  426. package/contracts/product/ApplicationService.sol +259 -0
  427. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  428. package/contracts/product/BasicProduct.sol +51 -0
  429. package/contracts/product/BasicProductAuthorization.sol +41 -0
  430. package/contracts/product/ClaimService.sol +708 -0
  431. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  432. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  433. package/contracts/product/IClaimService.sol +136 -0
  434. package/contracts/product/IPolicyService.sol +90 -0
  435. package/contracts/product/IPricingService.sol +39 -0
  436. package/contracts/product/IProductComponent.sol +62 -0
  437. package/contracts/product/IRiskService.sol +33 -0
  438. package/contracts/product/PolicyService.sol +736 -0
  439. package/contracts/product/PolicyServiceManager.sol +39 -0
  440. package/contracts/product/PricingService.sol +304 -0
  441. package/contracts/product/PricingServiceManager.sol +39 -0
  442. package/contracts/product/Product.sol +463 -0
  443. package/contracts/product/RiskService.sol +151 -0
  444. package/contracts/product/RiskServiceManager.sol +39 -0
  445. package/contracts/registry/ChainNft.sol +79 -40
  446. package/contracts/registry/IRegistry.sol +93 -30
  447. package/contracts/registry/IRegistryService.sol +34 -40
  448. package/contracts/registry/IRelease.sol +26 -0
  449. package/contracts/registry/ITransferInterceptor.sol +1 -2
  450. package/contracts/registry/Registry.sol +456 -197
  451. package/contracts/registry/RegistryAdmin.sol +344 -0
  452. package/contracts/registry/RegistryService.sol +89 -130
  453. package/contracts/registry/RegistryServiceManager.sol +23 -32
  454. package/contracts/registry/ReleaseAdmin.sol +245 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  456. package/contracts/registry/ReleaseRegistry.sol +511 -0
  457. package/contracts/registry/ServiceAuthorizationV3.sol +242 -0
  458. package/contracts/registry/TokenRegistry.sol +261 -64
  459. package/contracts/shared/Component.sol +226 -0
  460. package/contracts/shared/ComponentService.sol +700 -0
  461. package/contracts/shared/ComponentServiceManager.sol +38 -0
  462. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  463. package/contracts/shared/ContractLib.sol +252 -0
  464. package/contracts/shared/IComponent.sol +61 -0
  465. package/contracts/shared/IComponentService.sol +116 -0
  466. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  467. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  468. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  469. package/contracts/shared/INftOwnable.sol +4 -2
  470. package/contracts/shared/IPolicyHolder.sol +23 -14
  471. package/contracts/shared/IRegisterable.sol +23 -1
  472. package/contracts/shared/IRegistryLinked.sol +0 -1
  473. package/contracts/shared/IService.sol +12 -5
  474. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  475. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  476. package/contracts/shared/KeyValueStore.sol +131 -0
  477. package/contracts/shared/Lifecycle.sol +88 -0
  478. package/contracts/shared/NftIdSet.sol +65 -0
  479. package/contracts/shared/NftOwnable.sol +34 -27
  480. package/contracts/shared/PolicyHolder.sol +22 -41
  481. package/contracts/shared/Registerable.sol +55 -20
  482. package/contracts/shared/RegistryLinked.sol +9 -19
  483. package/contracts/shared/Service.sol +33 -40
  484. package/contracts/shared/TokenHandler.sol +368 -12
  485. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  486. package/contracts/staking/IStaking.sol +173 -0
  487. package/contracts/staking/IStakingService.sol +157 -0
  488. package/contracts/staking/StakeManagerLib.sol +224 -0
  489. package/contracts/staking/Staking.sol +526 -0
  490. package/contracts/staking/StakingLifecycle.sol +23 -0
  491. package/contracts/staking/StakingManager.sol +52 -0
  492. package/contracts/staking/StakingReader.sol +190 -0
  493. package/contracts/staking/StakingService.sol +439 -0
  494. package/contracts/staking/StakingServiceManager.sol +44 -0
  495. package/contracts/staking/StakingStore.sol +605 -0
  496. package/contracts/staking/TargetManagerLib.sol +211 -0
  497. package/contracts/{types → type}/AddressSet.sol +1 -1
  498. package/contracts/type/Amount.sol +150 -0
  499. package/contracts/{types → type}/Blocknumber.sol +26 -3
  500. package/contracts/{types → type}/ClaimId.sol +31 -3
  501. package/contracts/{types → type}/Fee.sol +24 -22
  502. package/contracts/{types → type}/Key32.sol +2 -2
  503. package/contracts/type/Key32Set.sol +62 -0
  504. package/contracts/{types → type}/NftId.sol +21 -16
  505. package/contracts/{types → type}/NftIdSet.sol +2 -2
  506. package/contracts/type/ObjectType.sol +290 -0
  507. package/contracts/type/PayoutId.sol +82 -0
  508. package/contracts/{types → type}/Referral.sol +2 -1
  509. package/contracts/type/RequestId.sol +75 -0
  510. package/contracts/type/RiskId.sol +74 -0
  511. package/contracts/type/RoleId.sol +165 -0
  512. package/contracts/type/Seconds.sol +101 -0
  513. package/contracts/type/Selector.sol +102 -0
  514. package/contracts/{types → type}/StateId.sol +47 -4
  515. package/contracts/type/String.sol +53 -0
  516. package/contracts/{types → type}/Timestamp.sol +20 -6
  517. package/contracts/{types → type}/UFixed.sol +40 -121
  518. package/contracts/{types → type}/Version.sol +19 -7
  519. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  520. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  521. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  522. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  523. package/package.json +11 -7
  524. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  525. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  526. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  528. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  531. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  532. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  533. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  536. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  539. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  540. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  541. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  546. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  548. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  550. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  551. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  553. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  555. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  557. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  559. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  561. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  563. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  565. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  567. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  587. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  589. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  591. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  593. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  594. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  596. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  598. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  599. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  602. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  604. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  606. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  608. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  610. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  612. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  614. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  615. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  616. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  617. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  618. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  620. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  622. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  624. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  626. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  636. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  638. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  640. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  642. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  644. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  646. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  648. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  650. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  652. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  654. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  656. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  658. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  660. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  662. package/contracts/components/Component.sol +0 -253
  663. package/contracts/components/IComponent.sol +0 -76
  664. package/contracts/components/IDistributionComponent.sol +0 -71
  665. package/contracts/components/IPoolComponent.sol +0 -113
  666. package/contracts/components/IProductComponent.sol +0 -40
  667. package/contracts/components/Pool.sol +0 -303
  668. package/contracts/components/Product.sol +0 -293
  669. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  670. package/contracts/instance/BundleManager.sol +0 -127
  671. package/contracts/instance/Cloneable.sol +0 -51
  672. package/contracts/instance/InstanceAccessManager.sol +0 -540
  673. package/contracts/instance/ObjectManager.sol +0 -82
  674. package/contracts/instance/base/ComponentService.sol +0 -121
  675. package/contracts/instance/base/KeyValueStore.sol +0 -180
  676. package/contracts/instance/base/Lifecycle.sol +0 -109
  677. package/contracts/instance/module/ISetup.sol +0 -33
  678. package/contracts/instance/module/ITreasury.sol +0 -23
  679. package/contracts/instance/service/ApplicationService.sol +0 -351
  680. package/contracts/instance/service/BundleService.sol +0 -431
  681. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  682. package/contracts/instance/service/ClaimService.sol +0 -151
  683. package/contracts/instance/service/DistributionService.sol +0 -437
  684. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  685. package/contracts/instance/service/IBundleService.sol +0 -93
  686. package/contracts/instance/service/IClaimService.sol +0 -61
  687. package/contracts/instance/service/IPolicyService.sol +0 -72
  688. package/contracts/instance/service/IPoolService.sol +0 -99
  689. package/contracts/instance/service/IProductService.sol +0 -40
  690. package/contracts/instance/service/PolicyService.sol +0 -362
  691. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  692. package/contracts/instance/service/PoolService.sol +0 -303
  693. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  694. package/contracts/instance/service/ProductService.sol +0 -209
  695. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  696. package/contracts/registry/RegistryAccessManager.sol +0 -216
  697. package/contracts/registry/ReleaseManager.sol +0 -324
  698. package/contracts/shared/ContractDeployerLib.sol +0 -72
  699. package/contracts/test/TestFee.sol +0 -25
  700. package/contracts/test/TestRegisterable.sol +0 -18
  701. package/contracts/test/TestRoleId.sol +0 -14
  702. package/contracts/test/TestService.sol +0 -25
  703. package/contracts/test/TestToken.sol +0 -26
  704. package/contracts/test/TestVersion.sol +0 -44
  705. package/contracts/test/TestVersionable.sol +0 -17
  706. package/contracts/types/Amount.sol +0 -60
  707. package/contracts/types/ChainId.sol +0 -38
  708. package/contracts/types/NumberId.sol +0 -52
  709. package/contracts/types/ObjectType.sol +0 -157
  710. package/contracts/types/PayoutId.sol +0 -54
  711. package/contracts/types/RiskId.sol +0 -43
  712. package/contracts/types/RoleId.sol +0 -97
  713. package/contracts/types/Seconds.sol +0 -54
  714. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,54 +1,63 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../types/NftId.sol";
5
- import {ClaimId} from "../../types/ClaimId.sol";
6
- import {ReferralId} from "../../types/Referral.sol";
7
- import {RiskId} from "../../types/RiskId.sol";
8
- import {Seconds} from "../../types/Seconds.sol";
9
- 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";
10
11
 
11
12
  interface IPolicy {
12
13
 
13
- struct Premium {
14
+ struct PremiumInfo {
15
+ // premium splitting per target wallet
16
+ Amount productFeeAmount;
17
+ Amount distributionFeeAndCommissionAmount;
18
+ Amount poolPremiumAndFeeAmount;
19
+
20
+ // detailed positions
14
21
  // this is the net premium calculated by the product
15
- uint256 netPremiumAmount;
22
+ Amount netPremiumAmount;
16
23
  // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
17
- uint256 fullPremiumAmount;
18
- // premium = fullPremium - discount
19
- uint256 premiumAmount;
20
- uint256 productFeeFixAmount;
21
- uint256 poolFeeFixAmount;
22
- uint256 bundleFeeFixAmount;
23
- uint256 distributionFeeFixAmount;
24
- uint256 productFeeVarAmount;
25
- uint256 poolFeeVarAmount;
26
- uint256 bundleFeeVarAmount;
27
- uint256 distributionFeeVarAmount;
28
- 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;
29
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)
30
- uint256 distributionOwnerFeeVarAmount;
37
+ Amount distributionOwnerFeeVarAmount;
31
38
  // this value is based on distributor type referenced in the referral
32
- uint256 commissionAmount;
39
+ Amount commissionAmount;
33
40
  // this is based on referral used
34
- uint256 discountAmount;
41
+ Amount discountAmount;
35
42
  }
36
43
 
37
44
  /// @dev policy data for the full policy lifecycle
38
45
  struct PolicyInfo {
46
+ // application data, no changes after applying for a policy
39
47
  NftId productNftId;
40
48
  NftId bundleNftId;
41
49
  ReferralId referralId;
42
50
  RiskId riskId;
43
- uint256 sumInsuredAmount;
44
- uint256 premiumAmount;
45
- uint256 premiumPaidAmount;
51
+ Amount sumInsuredAmount;
52
+ Amount premiumAmount; // expected premium at application time
46
53
  Seconds lifetime;
47
54
  bytes applicationData;
48
- bytes policyData;
55
+ // policy data that may change during the lifecycle
56
+ bytes processData;
49
57
  uint16 claimsCount;
50
58
  uint16 openClaimsCount;
51
- uint256 payoutAmount;
59
+ Amount claimAmount; // sum of confirmed claim amounts (max = sum insured amount)
60
+ Amount payoutAmount; // sum of payouts (max = sum confirmed claim amountst)
52
61
  Timestamp activatedAt; // time of underwriting
53
62
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
54
63
  Timestamp closedAt; // no locked capital (or declinedAt)
@@ -56,17 +65,21 @@ interface IPolicy {
56
65
 
57
66
  // claimId neeeds to be encoded policyNftId:claimId combination
58
67
  struct ClaimInfo {
59
- uint256 claimAmount;
60
- uint256 paidAmount;
61
- bytes data;
62
- Timestamp closedAt; // payoment of confirmed claim amount (or declinedAt)
68
+ Amount claimAmount;
69
+ Amount paidAmount;
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
74
+ Timestamp closedAt; // payment of confirmed claim amount (or declinedAt)
63
75
  }
64
76
 
65
77
  // claimId neeeds to be encoded policyNftId:claimId combination
66
78
  struct PayoutInfo {
67
79
  ClaimId claimId;
68
- uint256 amount;
69
- bytes data;
70
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
80
+ Amount amount;
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
71
84
  }
72
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,46 @@
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)
19
+ {}
20
+
21
+ function _setupTargets()
22
+ internal
23
+ virtual override
24
+ {
25
+ // basic component target
26
+ _addComponentTargetWithRole(ORACLE());
27
+ }
28
+
29
+
30
+ function _setupTargetAuthorizations()
31
+ internal
32
+ virtual override
33
+ {
34
+ IAccess.FunctionInfo[] storage functions;
35
+
36
+ // authorize public role (open access to any account, only allows to lock target)
37
+ functions = _authorizeForTarget(getTargetName(), getServiceRole(ORACLE()));
38
+ _authorize(functions, IOracle.request.selector, "request");
39
+ _authorize(functions, IOracle.cancel.selector, "cancel");
40
+
41
+ // authorize public role (open access to any account, only allows to lock target)
42
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
43
+ _authorize(functions, BasicOracle.respond.selector, "respond");
44
+ }
45
+ }
46
+
@@ -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
+ }
@@ -0,0 +1,66 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IService} from "../shared/IService.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {ObjectType} from "../type/ObjectType.sol";
7
+ import {RequestId} from "../type/RequestId.sol";
8
+ import {StateId} from "../type/StateId.sol";
9
+ import {Timestamp} from "../type/Timestamp.sol";
10
+
11
+
12
+ interface IOracleService is IService {
13
+
14
+ event LogOracleServiceRequestCreated(RequestId requestId, NftId requesterNftId, NftId oracleNftId, Timestamp expiryAt);
15
+ event LogOracleServiceResponseProcessed(RequestId requestId, NftId oracleNftId);
16
+ event LogOracleServiceDeliveryFailed(RequestId requestId, address requesterAddress, string functionSignature);
17
+ event LogOracleServiceResponseResent(RequestId requestId, NftId requesterNftId);
18
+ event LogOracleServiceRequestCancelled(RequestId requestId, NftId requesterNftId);
19
+
20
+ // create request
21
+ error ErrorOracleServiceProductMismatch(ObjectType callerObjectType, NftId productNft, NftId oracleParentNftId);
22
+ error ErrorOracleServiceExpiryInThePast(Timestamp blockTimestamp, Timestamp expiryAt);
23
+ error ErrorOracleServiceCallbackMethodNameEmpty();
24
+
25
+ // respond
26
+ error ErrorOracleServiceNotResponsibleOracle(RequestId requestId, NftId expectedOracleNftId, NftId oracleNftId);
27
+
28
+ // get request info
29
+ error ErrorOracleServiceRequestStateNotActive(RequestId requestId, StateId state);
30
+ error ErrorOracleServiceCallerNotResponsibleOracle(RequestId requestId, NftId oracleNftId, NftId callerNftId);
31
+ error ErrorOracleServiceCallerNotRequester(RequestId requestId, NftId requesterNftId, NftId callerNftId);
32
+ error ErrorOracleServiceRequestExpired(RequestId requestId, Timestamp expiredAt);
33
+
34
+ /// @dev send an oracle request to the specified oracle component.
35
+ /// the function returns the id of the newly created request.
36
+ /// permissioned: only registered components may send requests to oracles.
37
+ function request(
38
+ NftId oracleNftId,
39
+ bytes calldata requestData,
40
+ Timestamp expiryAt,
41
+ string calldata callbackMethodName
42
+ ) external returns (RequestId requestId);
43
+
44
+ /// @dev respond to oracle request by oracle compnent.
45
+ /// the response data is amende in the request info stored with the instance.
46
+ /// the request state changes to FULFILLED (when calling the callback method of the requester is successful)
47
+ /// or to FAILED when calling the requester is not succesful.
48
+ /// the function returns true iff the state changes to FULFILLED.
49
+ /// permissioned: only the oracle component linked to the request id may call this method
50
+ function respond(
51
+ RequestId requestId,
52
+ bytes calldata responseData
53
+ ) external returns (bool success);
54
+
55
+ /// @dev re send a failed response to the requester.
56
+ /// only requests in state FAILED may be re sent.
57
+ /// the request state changes to FULFILLED when calling the callback method of the requester is successful.
58
+ /// permissioned: only the requester may resend a request
59
+ function resend(RequestId requestId) external;
60
+
61
+ /// @dev notify the oracle component that the specified request has become invalid.
62
+ /// only requests in state ACTIVE may be cancelled.
63
+ /// permissioned: only the requester may cancel a request
64
+ function cancel(RequestId requestId) external;
65
+
66
+ }
@@ -0,0 +1,156 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {COMPONENT, PRODUCT, ORACLE} from "../type/ObjectType.sol";
6
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
7
+ import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
+ import {IOracleComponent} from "./IOracleComponent.sol";
10
+ import {IOracleService} from "./IOracleService.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
+ import {RequestId} from "../type/RequestId.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
15
+
16
+
17
+ abstract contract Oracle is
18
+ InstanceLinkedComponent,
19
+ IOracleComponent
20
+ {
21
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Oracle")) - 1)) & ~bytes32(uint256(0xff));
22
+ bytes32 public constant ORACLE_STORAGE_LOCATION_V1 = 0xaab7c0ea03d290e56d6c060e0733d3ebcbe647f7694616a2ec52738a64b2f900;
23
+
24
+ struct OracleStorage {
25
+ IComponentService _componentService;
26
+ IOracleService _oracleService;
27
+ }
28
+
29
+
30
+ function request(
31
+ RequestId requestId,
32
+ NftId requesterId,
33
+ bytes calldata requestData,
34
+ Timestamp expiryAt
35
+ )
36
+ external
37
+ virtual
38
+ restricted()
39
+ {
40
+ _request(requestId, requesterId, requestData, expiryAt);
41
+ }
42
+
43
+
44
+ function cancel(
45
+ RequestId requestId
46
+ )
47
+ external
48
+ virtual
49
+ restricted()
50
+ {
51
+ _cancel(requestId);
52
+ }
53
+
54
+
55
+ /// @dev Not relevant for oracle components, always returns false.
56
+ function isVerifying()
57
+ external
58
+ virtual
59
+ view
60
+ returns (bool verifying)
61
+ {
62
+ return false;
63
+ }
64
+
65
+ /// @dev Not relevant for oracle components
66
+ function withdrawFees(Amount amount)
67
+ external
68
+ virtual
69
+ override(IInstanceLinkedComponent, InstanceLinkedComponent)
70
+ onlyOwner()
71
+ restricted()
72
+ returns (Amount)
73
+ {
74
+ revert ErrorOracleNotImplemented("withdrawFees");
75
+ }
76
+
77
+
78
+ function _initializeOracle(
79
+ address registry,
80
+ NftId productNftId,
81
+ IAuthorization authorization,
82
+ address initialOwner,
83
+ string memory name,
84
+ address token,
85
+ bytes memory componentData // component specifidc data
86
+ )
87
+ internal
88
+ virtual
89
+ onlyInitializing()
90
+ {
91
+ _initializeInstanceLinkedComponent(
92
+ registry,
93
+ productNftId,
94
+ name,
95
+ token,
96
+ ORACLE(),
97
+ authorization,
98
+ true,
99
+ initialOwner,
100
+ componentData);
101
+
102
+ OracleStorage storage $ = _getOracleStorage();
103
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
104
+ $._oracleService = IOracleService(_getServiceAddress(ORACLE()));
105
+
106
+ _registerInterface(type(IOracleComponent).interfaceId);
107
+ }
108
+
109
+
110
+ /// @dev Internal function for handling requests.
111
+ /// Empty implementation.
112
+ /// Overwrite this function to implement use case specific handling for oracle calls.
113
+ function _request(
114
+ RequestId requestId,
115
+ NftId requesterId,
116
+ bytes calldata requestData,
117
+ Timestamp expiryAt
118
+ )
119
+ internal
120
+ virtual
121
+ {
122
+ }
123
+
124
+
125
+ /// @dev Internal function for cancelling requests.
126
+ /// Empty implementation.
127
+ /// Overwrite this function to implement use case specific cancelling.
128
+ function _cancel(
129
+ RequestId requestId
130
+ )
131
+ internal
132
+ virtual
133
+ {
134
+ }
135
+
136
+
137
+ /// @dev Internal function for handling oracle responses.
138
+ /// Default implementation sends response back to oracle service.
139
+ /// Use this function in use case specific external/public functions to handle use case specific response handling.
140
+ function _respond(
141
+ RequestId requestId,
142
+ bytes memory responseData
143
+ )
144
+ internal
145
+ virtual
146
+ {
147
+ _getOracleStorage()._oracleService.respond(
148
+ requestId, responseData);
149
+ }
150
+
151
+ function _getOracleStorage() private pure returns (OracleStorage storage $) {
152
+ assembly {
153
+ $.slot := ORACLE_STORAGE_LOCATION_V1
154
+ }
155
+ }
156
+ }