@etherisc/gif-next 0.0.2-e5a2253-213 → 0.0.2-e5bdc7a-937

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 (740) hide show
  1. package/README.md +85 -23
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  6. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  8. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  10. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  12. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  14. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  18. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1018 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +917 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +984 -0
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +322 -1403
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -203
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +419 -2524
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1666 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1276 -412
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +461 -393
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +378 -92
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
  76. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  77. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  78. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  80. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  81. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  82. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  84. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  86. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  88. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  90. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  92. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  93. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  96. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  97. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  107. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +291 -353
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  123. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +476 -274
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  125. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +421 -365
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +1029 -0
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +265 -228
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +944 -0
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +290 -211
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  155. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +488 -269
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  157. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IRiskService.sol/IRiskService.json} +154 -133
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  166. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  167. package/artifacts/contracts/product/Product.sol/Product.json +1106 -0
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +562 -20
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  177. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +273 -230
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  180. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/Registry.sol/Registry.json +1010 -85
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  183. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +338 -271
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +364 -78
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
  196. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  197. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +283 -274
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1835 -0
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +846 -0
  202. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  203. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +153 -172
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  206. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  207. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  208. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  209. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  210. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +260 -262
  212. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  213. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1402 -0
  214. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +711 -0
  216. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
  218. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  220. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  221. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  222. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  223. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  224. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +40 -31
  226. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  227. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  228. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IService.sol/IService.json +106 -152
  230. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  231. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  232. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  233. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +799 -0
  234. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  235. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
  236. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  237. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  238. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  239. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  240. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  242. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  244. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +96 -48
  246. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  248. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Service.sol/Service.json +138 -164
  250. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  251. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  252. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  254. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  255. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  256. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  257. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  258. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  259. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  260. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  262. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  263. package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
  264. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  266. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
  268. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  270. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  271. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
  272. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  273. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
  274. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  275. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  276. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  277. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  278. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  279. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  280. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  282. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  284. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  286. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  288. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  290. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  292. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  293. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  294. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  296. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  297. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  298. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  300. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  302. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  304. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  306. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +180 -0
  308. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  310. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  312. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  314. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  316. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  318. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  320. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  322. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  324. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  326. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  328. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  330. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  331. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  332. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  334. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  336. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  337. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  338. package/contracts/authorization/AccessAdmin.sol +616 -0
  339. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  340. package/contracts/authorization/Authorization.sol +289 -0
  341. package/contracts/authorization/IAccess.sol +49 -0
  342. package/contracts/authorization/IAccessAdmin.sol +137 -0
  343. package/contracts/authorization/IAuthorization.sol +60 -0
  344. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  345. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  346. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  347. package/contracts/distribution/BasicDistribution.sol +139 -0
  348. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  349. package/contracts/distribution/Distribution.sol +284 -0
  350. package/contracts/distribution/DistributionService.sol +354 -0
  351. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  352. package/contracts/distribution/IDistributionComponent.sol +52 -0
  353. package/contracts/distribution/IDistributionService.sol +100 -0
  354. package/contracts/examples/fire/DamageLevel.sol +59 -0
  355. package/contracts/examples/fire/FirePool.sol +86 -0
  356. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  357. package/contracts/examples/fire/FireProduct.sol +431 -0
  358. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  359. package/contracts/examples/fire/FireUSD.sol +26 -0
  360. package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
  361. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  362. package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
  363. package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
  364. package/contracts/instance/BundleSet.sol +130 -0
  365. package/contracts/instance/IInstance.sol +62 -50
  366. package/contracts/instance/IInstanceService.sol +56 -22
  367. package/contracts/instance/Instance.sol +175 -196
  368. package/contracts/instance/InstanceAdmin.sol +278 -0
  369. package/contracts/instance/InstanceAuthorizationV3.sol +217 -0
  370. package/contracts/instance/InstanceReader.sol +347 -83
  371. package/contracts/instance/InstanceService.sol +325 -246
  372. package/contracts/instance/InstanceServiceManager.sol +14 -29
  373. package/contracts/instance/InstanceStore.sol +287 -0
  374. package/contracts/instance/RiskSet.sol +119 -0
  375. package/contracts/instance/base/BalanceStore.sol +123 -0
  376. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  377. package/contracts/instance/base/ObjectCounter.sol +21 -0
  378. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  379. package/contracts/instance/base/ObjectSet.sol +78 -0
  380. package/contracts/instance/module/IAccess.sol +19 -21
  381. package/contracts/instance/module/IBundle.sol +8 -8
  382. package/contracts/instance/module/IComponents.sol +50 -0
  383. package/contracts/instance/module/IDistribution.sol +6 -4
  384. package/contracts/instance/module/IPolicy.sol +59 -19
  385. package/contracts/instance/module/IRisk.sol +2 -1
  386. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  387. package/contracts/oracle/BasicOracle.sol +47 -0
  388. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  389. package/contracts/oracle/IOracle.sol +36 -0
  390. package/contracts/oracle/IOracleComponent.sol +33 -0
  391. package/contracts/oracle/IOracleService.sol +66 -0
  392. package/contracts/oracle/Oracle.sol +156 -0
  393. package/contracts/oracle/OracleService.sol +309 -0
  394. package/contracts/oracle/OracleServiceManager.sol +39 -0
  395. package/contracts/pool/BasicPool.sol +175 -0
  396. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  397. package/contracts/pool/BundleService.sol +423 -0
  398. package/contracts/pool/BundleServiceManager.sol +39 -0
  399. package/contracts/pool/IBundleService.sol +122 -0
  400. package/contracts/pool/IPoolComponent.sol +62 -0
  401. package/contracts/pool/IPoolService.sol +153 -0
  402. package/contracts/pool/Pool.sol +345 -0
  403. package/contracts/pool/PoolService.sol +612 -0
  404. package/contracts/pool/PoolServiceManager.sol +39 -0
  405. package/contracts/product/ApplicationService.sol +259 -0
  406. package/contracts/product/ApplicationServiceManager.sol +38 -0
  407. package/contracts/product/BasicProduct.sol +49 -0
  408. package/contracts/product/BasicProductAuthorization.sol +42 -0
  409. package/contracts/product/ClaimService.sol +614 -0
  410. package/contracts/product/ClaimServiceManager.sol +38 -0
  411. package/contracts/product/IApplicationService.sol +66 -0
  412. package/contracts/product/IClaimService.sol +123 -0
  413. package/contracts/product/IPolicyService.sol +90 -0
  414. package/contracts/product/IPricingService.sol +39 -0
  415. package/contracts/product/IProductComponent.sol +59 -0
  416. package/contracts/product/IRiskService.sol +33 -0
  417. package/contracts/product/PolicyService.sol +733 -0
  418. package/contracts/product/PolicyServiceManager.sol +39 -0
  419. package/contracts/product/PricingService.sol +300 -0
  420. package/contracts/product/PricingServiceManager.sol +39 -0
  421. package/contracts/product/Product.sol +427 -0
  422. package/contracts/product/RiskService.sol +107 -0
  423. package/contracts/product/RiskServiceManager.sol +39 -0
  424. package/contracts/registry/ChainNft.sol +79 -34
  425. package/contracts/registry/IRegistry.sol +108 -26
  426. package/contracts/registry/IRegistryService.sol +38 -34
  427. package/contracts/registry/ITransferInterceptor.sol +1 -1
  428. package/contracts/registry/Registry.sol +538 -209
  429. package/contracts/registry/RegistryAdmin.sol +451 -0
  430. package/contracts/registry/RegistryService.sol +119 -198
  431. package/contracts/registry/RegistryServiceManager.sol +24 -33
  432. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  433. package/contracts/registry/ReleaseRegistry.sol +485 -0
  434. package/contracts/registry/ServiceAuthorizationV3.sol +175 -0
  435. package/contracts/registry/TokenRegistry.sol +263 -58
  436. package/contracts/shared/Component.sol +217 -0
  437. package/contracts/shared/ComponentService.sol +806 -0
  438. package/contracts/shared/ComponentServiceManager.sol +38 -0
  439. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  440. package/contracts/shared/ContractLib.sol +224 -0
  441. package/contracts/shared/IComponent.sol +67 -0
  442. package/contracts/shared/IComponentService.sol +130 -0
  443. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  444. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  445. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  446. package/contracts/shared/INftOwnable.sol +15 -12
  447. package/contracts/shared/IPolicyHolder.sol +35 -0
  448. package/contracts/shared/IRegisterable.sol +15 -4
  449. package/contracts/shared/IRegistryLinked.sol +11 -0
  450. package/contracts/shared/IService.sol +15 -6
  451. package/contracts/shared/InitializableERC165.sol +27 -0
  452. package/contracts/shared/InstanceLinkedComponent.sol +205 -0
  453. package/contracts/shared/KeyValueStore.sol +131 -0
  454. package/contracts/shared/Lifecycle.sol +88 -0
  455. package/contracts/shared/NftIdSet.sol +65 -0
  456. package/contracts/shared/NftOwnable.sol +75 -82
  457. package/contracts/shared/PolicyHolder.sol +62 -0
  458. package/contracts/shared/Registerable.sol +34 -41
  459. package/contracts/shared/RegistryLinked.sol +38 -0
  460. package/contracts/shared/Service.sol +60 -34
  461. package/contracts/shared/TokenHandler.sol +374 -12
  462. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  463. package/contracts/staking/IStaking.sol +173 -0
  464. package/contracts/staking/IStakingService.sol +157 -0
  465. package/contracts/staking/StakeManagerLib.sol +224 -0
  466. package/contracts/staking/Staking.sol +505 -0
  467. package/contracts/staking/StakingLifecycle.sol +23 -0
  468. package/contracts/staking/StakingManager.sol +52 -0
  469. package/contracts/staking/StakingReader.sol +190 -0
  470. package/contracts/staking/StakingService.sol +440 -0
  471. package/contracts/staking/StakingServiceManager.sol +44 -0
  472. package/contracts/staking/StakingStore.sol +605 -0
  473. package/contracts/staking/TargetManagerLib.sol +211 -0
  474. package/contracts/{types → type}/AddressSet.sol +1 -1
  475. package/contracts/type/Amount.sol +150 -0
  476. package/contracts/{types → type}/Blocknumber.sol +27 -3
  477. package/contracts/type/ClaimId.sol +80 -0
  478. package/contracts/{types → type}/DistributorType.sol +2 -2
  479. package/contracts/{types → type}/Fee.sol +33 -23
  480. package/contracts/{types → type}/Key32.sol +2 -2
  481. package/contracts/type/Key32Set.sol +62 -0
  482. package/contracts/{types → type}/NftId.sol +28 -15
  483. package/contracts/{types → type}/NftIdSet.sol +2 -2
  484. package/contracts/type/ObjectType.sol +278 -0
  485. package/contracts/type/PayoutId.sol +82 -0
  486. package/contracts/{types → type}/Referral.sol +6 -1
  487. package/contracts/type/RequestId.sol +75 -0
  488. package/contracts/{types → type}/RiskId.sol +31 -5
  489. package/contracts/type/RoleId.sol +162 -0
  490. package/contracts/type/Seconds.sol +101 -0
  491. package/contracts/type/Selector.sol +102 -0
  492. package/contracts/{types → type}/StateId.sol +48 -4
  493. package/contracts/type/String.sol +53 -0
  494. package/contracts/{types → type}/Timestamp.sol +34 -15
  495. package/contracts/{types → type}/UFixed.sol +39 -9
  496. package/contracts/{types → type}/Version.sol +5 -2
  497. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  498. package/contracts/upgradeability/ProxyManager.sol +232 -0
  499. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  500. package/contracts/upgradeability/Versionable.sol +59 -0
  501. package/package.json +11 -7
  502. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  503. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  504. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  505. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  506. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  507. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  508. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  509. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  510. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  511. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  512. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  515. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  517. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  519. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  521. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  523. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  525. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  527. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  529. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  531. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  532. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  533. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  534. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  536. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  537. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  538. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  539. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  540. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  541. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  542. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  543. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  544. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  545. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  546. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  548. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  550. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  552. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  553. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  554. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  555. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  556. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  557. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  558. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  559. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
  560. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  561. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  562. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  563. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  564. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  565. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  566. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
  567. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  568. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  569. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  570. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  571. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  572. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  573. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  574. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1121
  577. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
  579. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -791
  581. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
  583. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  586. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  589. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1246
  591. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
  593. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -825
  595. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
  597. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -875
  599. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  600. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
  601. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  602. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  603. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  604. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -530
  605. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  607. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  608. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  609. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  610. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  611. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  612. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  613. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  614. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  615. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  616. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  617. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  618. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  619. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  621. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  623. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  625. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  626. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  627. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  628. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  629. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  630. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  631. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  632. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  633. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  634. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  635. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  636. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  637. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  639. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  641. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  643. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  645. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  646. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  647. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  649. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  650. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  651. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  653. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  655. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  657. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  659. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  661. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  663. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  665. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  667. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  669. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  671. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  673. package/contracts/components/BaseComponent.sol +0 -168
  674. package/contracts/components/Distribution.sol +0 -154
  675. package/contracts/components/IBaseComponent.sol +0 -35
  676. package/contracts/components/IDistributionComponent.sol +0 -44
  677. package/contracts/components/IPoolComponent.sol +0 -66
  678. package/contracts/components/IProductComponent.sol +0 -35
  679. package/contracts/components/Pool.sol +0 -258
  680. package/contracts/components/Product.sol +0 -295
  681. package/contracts/experiment/cloning/Cloner.sol +0 -47
  682. package/contracts/experiment/errors/Require.sol +0 -38
  683. package/contracts/experiment/errors/Revert.sol +0 -44
  684. package/contracts/experiment/inheritance/A.sol +0 -53
  685. package/contracts/experiment/inheritance/B.sol +0 -28
  686. package/contracts/experiment/inheritance/C.sol +0 -34
  687. package/contracts/experiment/inheritance/IA.sol +0 -13
  688. package/contracts/experiment/inheritance/IB.sol +0 -10
  689. package/contracts/experiment/inheritance/IC.sol +0 -12
  690. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  691. package/contracts/experiment/statemachine/ISM.sol +0 -25
  692. package/contracts/experiment/statemachine/SM.sol +0 -57
  693. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  694. package/contracts/experiment/types/TypeA.sol +0 -47
  695. package/contracts/experiment/types/TypeB.sol +0 -29
  696. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  697. package/contracts/instance/BundleManager.sol +0 -129
  698. package/contracts/instance/IInstanceBase.sol +0 -25
  699. package/contracts/instance/InstanceAccessManager.sol +0 -303
  700. package/contracts/instance/InstanceBase.sol +0 -39
  701. package/contracts/instance/ObjectManager.sol +0 -101
  702. package/contracts/instance/base/ComponentServiceBase.sol +0 -138
  703. package/contracts/instance/base/IInstanceBase.sol +0 -21
  704. package/contracts/instance/base/KeyValueStore.sol +0 -172
  705. package/contracts/instance/base/Lifecycle.sol +0 -100
  706. package/contracts/instance/module/ISetup.sol +0 -46
  707. package/contracts/instance/module/ITreasury.sol +0 -23
  708. package/contracts/instance/service/BundleService.sol +0 -294
  709. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  710. package/contracts/instance/service/DistributionService.sol +0 -115
  711. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  712. package/contracts/instance/service/IBundleService.sol +0 -44
  713. package/contracts/instance/service/IDistributionService.sol +0 -12
  714. package/contracts/instance/service/IPolicyService.sol +0 -94
  715. package/contracts/instance/service/IPoolService.sol +0 -20
  716. package/contracts/instance/service/IProductService.sol +0 -40
  717. package/contracts/instance/service/PolicyService.sol +0 -539
  718. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  719. package/contracts/instance/service/PoolService.sol +0 -142
  720. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  721. package/contracts/instance/service/ProductService.sol +0 -209
  722. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  723. package/contracts/registry/RegistryAccessManager.sol +0 -210
  724. package/contracts/registry/ReleaseManager.sol +0 -342
  725. package/contracts/shared/ContractDeployerLib.sol +0 -72
  726. package/contracts/shared/ERC165.sol +0 -25
  727. package/contracts/shared/ProxyManager.sol +0 -94
  728. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  729. package/contracts/shared/Versionable.sol +0 -147
  730. package/contracts/test/TestFee.sol +0 -25
  731. package/contracts/test/TestRegisterable.sol +0 -18
  732. package/contracts/test/TestRoleId.sol +0 -14
  733. package/contracts/test/TestService.sol +0 -25
  734. package/contracts/test/TestToken.sol +0 -26
  735. package/contracts/test/TestVersion.sol +0 -44
  736. package/contracts/test/TestVersionable.sol +0 -17
  737. package/contracts/types/ChainId.sol +0 -38
  738. package/contracts/types/NumberId.sol +0 -52
  739. package/contracts/types/ObjectType.sol +0 -152
  740. package/contracts/types/RoleId.sol +0 -90
@@ -0,0 +1,111 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
7
+ import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
8
+ import {Lifecycle} from "../../shared/Lifecycle.sol";
9
+
10
+ contract ObjectLifecycle is
11
+ Lifecycle,
12
+ Initializable
13
+ {
14
+ function _initializeLifecycle() internal onlyInitializing
15
+ {
16
+ _setupLifecycle();
17
+ }
18
+
19
+ function _setupLifecycle()
20
+ internal
21
+ override
22
+ {
23
+ _setupBundleLifecycle();
24
+ _setupComponentLifecycle();
25
+ _setupPolicyLifecycle();
26
+ _setupPremiumLifecycle();
27
+ _setupClaimLifecycle();
28
+ _setupPayoutLifecycle();
29
+ _setupRiskLifecycle();
30
+ _setupRequestLifecycle();
31
+
32
+ // setup dummy lifecycles to manage with key value store
33
+ _setUpPoolLifecycle();
34
+ _setUpProductLifecycle();
35
+ _setUpDistributionLifecycle();
36
+ }
37
+
38
+ function _setupComponentLifecycle() private {
39
+ setInitialState(COMPONENT(), ACTIVE());
40
+ setStateTransition(COMPONENT(), ACTIVE(), PAUSED());
41
+ setStateTransition(COMPONENT(), PAUSED(), ACTIVE());
42
+ setStateTransition(COMPONENT(), PAUSED(), ARCHIVED());
43
+ }
44
+
45
+ function _setupBundleLifecycle() private {
46
+ setInitialState(BUNDLE(), ACTIVE());
47
+ setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
48
+ setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
49
+ setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
50
+ setStateTransition(BUNDLE(), PAUSED(), CLOSED());
51
+ }
52
+
53
+ function _setupPolicyLifecycle() private {
54
+ setInitialState(POLICY(), APPLIED());
55
+ setStateTransition(POLICY(), APPLIED(), REVOKED());
56
+ setStateTransition(POLICY(), APPLIED(), DECLINED());
57
+ setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
58
+ setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
59
+ }
60
+
61
+ function _setupPremiumLifecycle() private {
62
+ setInitialState(PREMIUM(), EXPECTED());
63
+ setStateTransition(PREMIUM(), EXPECTED(), PAID());
64
+ }
65
+
66
+ function _setupClaimLifecycle() private {
67
+ setInitialState(CLAIM(), SUBMITTED());
68
+ setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
69
+ setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
70
+ setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
71
+ }
72
+
73
+ function _setupPayoutLifecycle() private {
74
+ setInitialState(PAYOUT(), EXPECTED());
75
+ // TODO: add state cancelled
76
+ setStateTransition(PAYOUT(), EXPECTED(), PAID());
77
+ }
78
+
79
+ function _setupRiskLifecycle() private {
80
+ setInitialState(RISK(), ACTIVE());
81
+ setStateTransition(RISK(), ACTIVE(), PAUSED());
82
+ setStateTransition(RISK(), PAUSED(), ACTIVE());
83
+ setStateTransition(RISK(), PAUSED(), ARCHIVED());
84
+ }
85
+
86
+ function _setupRequestLifecycle() private {
87
+ setInitialState(REQUEST(), ACTIVE());
88
+ setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
89
+ setStateTransition(REQUEST(), ACTIVE(), FAILED());
90
+ setStateTransition(REQUEST(), FAILED(), FULFILLED());
91
+ setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
92
+ }
93
+
94
+ // dummy lifecycle only
95
+ function _setUpPoolLifecycle() private {
96
+ setInitialState(POOL(), ACTIVE());
97
+ }
98
+
99
+ // dummy lifecycle only
100
+ function _setUpProductLifecycle() private {
101
+ setInitialState(PRODUCT(), ACTIVE());
102
+ }
103
+
104
+ // dummy lifecycles only
105
+ function _setUpDistributionLifecycle() private {
106
+ setInitialState(DISTRIBUTION(), ACTIVE());
107
+ setInitialState(DISTRIBUTOR(), ACTIVE());
108
+ setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
109
+ setInitialState(REFERRAL(), ACTIVE());
110
+ }
111
+ }
@@ -0,0 +1,78 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Cloneable} from "./Cloneable.sol";
5
+
6
+ import {IInstance} from "../IInstance.sol";
7
+ import {LibKey32Set} from "../../type/Key32Set.sol";
8
+ import {NftId} from "../../type/NftId.sol";
9
+ import {Key32} from "../../type/Key32.sol";
10
+
11
+ contract ObjectSet is
12
+ Cloneable
13
+ {
14
+ using LibKey32Set for LibKey32Set.Set;
15
+
16
+ event LogObjectSetInitialized(address instance);
17
+
18
+ error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
19
+
20
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _activeObjects;
21
+ mapping(NftId compnentNftId => LibKey32Set.Set objects) internal _allObjects;
22
+ IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
23
+
24
+ /// @dev This initializer needs to be called from the instance itself.
25
+ function initialize()
26
+ external
27
+ initializer()
28
+ {
29
+ _instance = IInstance(msg.sender);
30
+ __Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
31
+
32
+ emit LogObjectSetInitialized(address(_instance));
33
+ }
34
+
35
+ function getInstance() external view returns (IInstance) {
36
+ return _instance;
37
+ }
38
+
39
+ function _add(NftId componentNftId, Key32 key) internal {
40
+ LibKey32Set.Set storage allSet = _allObjects[componentNftId];
41
+ LibKey32Set.Set storage activeSet = _activeObjects[componentNftId];
42
+
43
+ allSet.add(key);
44
+ activeSet.add(key);
45
+ }
46
+
47
+ function _activate(NftId componentNftId, Key32 key) internal {
48
+ _activeObjects[componentNftId].add(key);
49
+ }
50
+
51
+ function _deactivate(NftId componentNftId, Key32 key) internal {
52
+ _activeObjects[componentNftId].remove(key);
53
+ }
54
+
55
+ function _objects(NftId componentNftId) internal view returns (uint256) {
56
+ return _allObjects[componentNftId].size();
57
+ }
58
+
59
+ function _contains(NftId componentNftId, Key32 key) internal view returns (bool) {
60
+ return _allObjects[componentNftId].contains(key);
61
+ }
62
+
63
+ function _getObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
64
+ return _allObjects[componentNftId].getElementAt(idx);
65
+ }
66
+
67
+ function _activeObjs(NftId componentNftId) internal view returns (uint256) {
68
+ return _activeObjects[componentNftId].size();
69
+ }
70
+
71
+ function _isActive(NftId componentNftId, Key32 key) internal view returns (bool) {
72
+ return _activeObjects[componentNftId].contains(key);
73
+ }
74
+
75
+ function _getActiveObject(NftId componentNftId, uint256 idx) internal view returns (Key32) {
76
+ return _activeObjects[componentNftId].getElementAt(idx);
77
+ }
78
+ }
@@ -1,48 +1,46 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
4
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
5
 
7
- import {RoleId} from "../../types/RoleId.sol";
8
- import {Timestamp} from "../../types/Timestamp.sol";
6
+ import {NftId} from "../../type/NftId.sol";
7
+ import {RoleId} from "../../type/RoleId.sol";
8
+ import {Timestamp} from "../../type/Timestamp.sol";
9
9
 
10
10
  interface IAccess {
11
11
 
12
+ enum Type {
13
+ NotInitialized,
14
+ Core,
15
+ Gif,
16
+ Custom
17
+ }
18
+
12
19
  struct RoleInfo {
13
20
  ShortString name;
14
- bool isCustom;
15
- bool isLocked;
21
+ Type rtype;
22
+ //bool isLocked;
23
+ RoleId admin;
16
24
  Timestamp createdAt;
17
25
  Timestamp updatedAt;
18
26
  }
19
27
 
20
28
  struct TargetInfo {
21
29
  ShortString name;
22
- bool isCustom;
30
+ Type ttype;
23
31
  bool isLocked;
24
32
  Timestamp createdAt;
25
33
  Timestamp updatedAt;
26
34
  }
27
35
 
28
- error ErrorIAccessRoleIdInvalid(RoleId roleId);
29
36
  error ErrorIAccessRoleIdTooBig(RoleId roleId);
30
37
  error ErrorIAccessRoleIdTooSmall(RoleId roleId);
31
- error ErrorIAccessRoleIdAlreadyExists(RoleId roleId, ShortString name);
32
- error ErrorIAccessRoleIdNotActive(RoleId roleId);
33
- error ErrorIAccessRoleNameEmpty(RoleId roleId);
34
- error ErrorIAccessRoleNameNotUnique(RoleId roleId, ShortString name);
35
- error ErrorIAccessRoleInvalidUpdate(RoleId roleId, bool isCustom);
36
- error ErrorIAccessRoleIsCustomIsImmutable(RoleId roleId, bool isCustom, bool isCustomExisting);
37
- error ErrorIAccessSetLockedForNonexstentRole(RoleId roleId);
38
- error ErrorIAccessGrantNonexstentRole(RoleId roleId);
39
- error ErrorIAccessRevokeNonexstentRole(RoleId roleId);
40
- error ErrorIAccessRenounceNonexstentRole(RoleId roleId);
38
+ error ErrorIAccessRoleTypeInvalid(RoleId roleId, Type rtype);
41
39
 
42
40
  error ErrorIAccessTargetAddressZero();
43
- error ErrorIAccessTargetAlreadyExists(address target, ShortString name);
44
- error ErrorIAccessTargetNameEmpty(address target);
45
- error ErrorIAccessTargetNameExists(address target, address existingTarget, ShortString name);
46
- error ErrorIAccessSetLockedForNonexstentTarget(address target);
41
+ error ErrorIAccessTargetTypeInvalid(address target, Type ttype);
47
42
  error ErrorIAccessTargetLocked(address target);
43
+ error ErrorIAccessTargetNotRegistered(address target);
44
+ error ErrorIAccessTargetAuthorityInvalid(address target, address targetAuthority);
45
+ error ErrorIAccessTargetInstanceMismatch(address target, NftId targetParentNftId, NftId instanceNftId);
48
46
  }
@@ -1,20 +1,20 @@
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 {Fee} from "../../types/Fee.sol";
6
- 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";
7
9
 
8
10
  interface IBundle {
11
+
9
12
  struct BundleInfo {
10
13
  NftId poolNftId;
11
14
  Fee fee; // bundle fee on net premium amounts
12
15
  bytes filter; // required conditions for applications to be considered for collateralization by this bundle
13
- uint256 capitalAmount; // net investment capital + net premiums - payouts
14
- uint256 lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= balance)
15
- uint256 balanceAmount; // total amount of funds: capitalAmount + fees (balance >= captial)
16
- uint256 lifetime;
17
- Timestamp expiredAt; // no new policies
16
+ Timestamp activatedAt;
17
+ Timestamp expiredAt; // no new policies starting with this timestamp
18
18
  Timestamp closedAt; // no open policies, locked amount = 0
19
19
  }
20
20
  }
@@ -0,0 +1,50 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount} from "../../type/Amount.sol";
7
+ import {Fee} from "../../type/Fee.sol";
8
+ import {NftId} from "../../type/NftId.sol";
9
+ import {RoleId} from "../../type/RoleId.sol";
10
+ import {TokenHandler} from "../../shared/TokenHandler.sol";
11
+ import {UFixed} from "../../type/UFixed.sol";
12
+
13
+ interface IComponents {
14
+
15
+ struct ComponentInfo {
16
+ string name; // component name (needs to be unique per instance)
17
+ IERC20Metadata token;
18
+ TokenHandler tokenHandler;
19
+ bytes data; // will hold component type specific additional info (eg encoded pool info)
20
+ }
21
+
22
+ struct ProductInfo {
23
+ bool isProcessingFundedClaims; // custom logic to react to pool events for funded claims
24
+ bool isInterceptingPolicyTransfers; // custom logic for policy nft transfers
25
+ bool hasDistribution; // flag to indicate if distribution is enabled
26
+ uint8 expectedNumberOfOracles; // expected number of oracles
27
+ uint8 numberOfOracles; // actual number of oracles
28
+ NftId poolNftId; // mandatory
29
+ NftId distributionNftId; // 0..1 (optional)
30
+ NftId [] oracleNftId; // 0..n (optional)
31
+ Fee productFee; // product fee on net premium
32
+ Fee processingFee; // product fee on payout amounts
33
+ Fee distributionFee; // distribution fee for sales that do not include commissions
34
+ Fee minDistributionOwnerFee; // min fee required by distribution owner (not including commissions for distributors)
35
+ Fee poolFee; // pool fee on net premium
36
+ Fee stakingFee; // pool fee on staked capital from investor
37
+ Fee performanceFee; // pool fee on profits from capital investors
38
+ }
39
+
40
+
41
+ struct PoolInfo {
42
+ Amount maxBalanceAmount; // max balance amount allowed for pool
43
+ bool isInterceptingBundleTransfers; // custom logic for bundle nft transfers
44
+ bool isProcessingConfirmedClaims; // custom logic for claims confirmation
45
+ bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
46
+ bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
47
+ UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
48
+ UFixed retentionLevel; // amount of collateral held in pool (default 100%)
49
+ }
50
+ }
@@ -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,6 +25,7 @@ interface IDistribution {
24
25
  DistributorType distributorType;
25
26
  bool active;
26
27
  bytes data;
28
+ uint32 numPoliciesSold;
27
29
  }
28
30
 
29
31
  struct ReferralInfo {
@@ -1,27 +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 {NumberId} from "../../types/NumberId.sol";
6
- import {ReferralId} from "../../types/Referral.sol";
7
- import {RiskId} from "../../types/RiskId.sol";
8
- 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";
9
11
 
10
12
  interface IPolicy {
13
+
14
+ struct PremiumInfo {
15
+ // premium splitting per target wallet
16
+ Amount productFeeAmount;
17
+ Amount distributionFeeAndCommissionAmount;
18
+ Amount poolPremiumAndFeeAmount;
19
+
20
+ // detailed positions
21
+ // this is the net premium calculated by the product
22
+ Amount netPremiumAmount;
23
+ // fullPremium = netPremium + all fixed amounts + all variable amounts (excl commission and minDistribtuionOwnerFee variable part)
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;
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)
37
+ Amount distributionOwnerFeeVarAmount;
38
+ // this value is based on distributor type referenced in the referral
39
+ Amount commissionAmount;
40
+ // this is based on referral used
41
+ Amount discountAmount;
42
+ }
43
+
44
+ /// @dev policy data for the full policy lifecycle
11
45
  struct PolicyInfo {
46
+ // application data, no changes after applying for a policy
12
47
  NftId productNftId;
13
48
  NftId bundleNftId;
14
49
  ReferralId referralId;
15
50
  RiskId riskId;
16
- uint256 sumInsuredAmount;
17
- uint256 premiumAmount;
18
- uint256 premiumPaidAmount;
19
- uint256 lifetime;
51
+ Amount sumInsuredAmount;
52
+ Amount premiumAmount; // expected premium at application time
53
+ Seconds lifetime;
20
54
  bytes applicationData;
21
- bytes policyData;
55
+ // policy data that may change during the lifecycle
56
+ bytes processData;
22
57
  uint16 claimsCount;
23
58
  uint16 openClaimsCount;
24
- 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)
25
61
  Timestamp activatedAt; // time of underwriting
26
62
  Timestamp expiredAt; // no new claims (activatedAt + lifetime)
27
63
  Timestamp closedAt; // no locked capital (or declinedAt)
@@ -29,17 +65,21 @@ interface IPolicy {
29
65
 
30
66
  // claimId neeeds to be encoded policyNftId:claimId combination
31
67
  struct ClaimInfo {
32
- uint256 claimAmount;
33
- uint256 paidAmount;
34
- bytes data;
35
- 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)
36
75
  }
37
76
 
38
77
  // claimId neeeds to be encoded policyNftId:claimId combination
39
78
  struct PayoutInfo {
40
- NumberId claimId;
41
- uint256 amount;
42
- bytes data;
43
- Timestamp paidAt; // payoment of confirmed claim amount (or declinedAt)
79
+ ClaimId claimId;
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
44
84
  }
45
85
  }
@@ -1,9 +1,10 @@
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
5
 
6
6
  interface IRisk {
7
+
7
8
  struct RiskInfo {
8
9
  NftId productNftId;
9
10
  bytes data;
@@ -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
+ }