@etherisc/gif-next 0.0.2-f619be3-760 → 0.0.2-f62dcdf-553

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 (663) hide show
  1. package/README.md +372 -24
  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/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1455 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +330 -1135
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +702 -0
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +388 -1276
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2058 -0
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +995 -0
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +722 -0
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  87. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  88. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  90. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  92. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  93. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  94. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  95. package/artifacts/contracts/instance/{treasury/ITreasury.sol/ITreasury.json → module/IRisk.sol/IRisk.json} +2 -2
  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 +1039 -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 +788 -0
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +960 -0
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -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 +1431 -0
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +546 -0
  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 +925 -0
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  153. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1012 -0
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  157. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +429 -0
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
  166. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  167. package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1001 -27
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  177. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1019 -0
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  179. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  180. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/Registry.sol/Registry.json +1518 -119
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  183. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1246 -0
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +713 -0
  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 +4 -0
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  196. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Component.sol/Component.json +725 -0
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
  200. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
  202. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +474 -0
  204. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  205. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  206. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  208. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  209. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
  210. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  211. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  212. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  213. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
  214. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/{instance/lifecycle → shared}/ILifecycle.sol/ILifecycle.json +65 -53
  216. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  217. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +57 -76
  218. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  219. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  220. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/component/IComponent.sol/IComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +90 -97
  222. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  223. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  224. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/IService.sol/IService.json +375 -0
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  229. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  230. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  231. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  232. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/Lifecycle.sol/Lifecycle.json} +50 -58
  234. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  236. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  237. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  238. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  239. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +322 -0
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  245. package/artifacts/contracts/shared/Service.sol/Service.json +442 -0
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +469 -0
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  256. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  257. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  276. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  278. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  280. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  282. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  286. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  288. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  290. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  292. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  294. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  296. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  298. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  300. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  302. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  320. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  322. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  328. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  330. package/contracts/authorization/AccessAdmin.sol +596 -0
  331. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  332. package/contracts/authorization/Authorization.sol +289 -0
  333. package/contracts/authorization/IAccess.sol +49 -0
  334. package/contracts/authorization/IAccessAdmin.sol +137 -0
  335. package/contracts/authorization/IAuthorization.sol +60 -0
  336. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  337. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  338. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  339. package/contracts/distribution/BasicDistribution.sol +139 -0
  340. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  341. package/contracts/distribution/Distribution.sol +285 -0
  342. package/contracts/distribution/DistributionService.sol +355 -0
  343. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  344. package/contracts/distribution/IDistributionComponent.sol +52 -0
  345. package/contracts/distribution/IDistributionService.sol +101 -0
  346. package/contracts/examples/fire/DamageLevel.sol +59 -0
  347. package/contracts/examples/fire/FirePool.sol +73 -0
  348. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  349. package/contracts/examples/fire/FireProduct.sol +415 -0
  350. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  351. package/contracts/examples/fire/FireUSD.sol +26 -0
  352. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  353. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  354. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  355. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  356. package/contracts/instance/BundleSet.sol +126 -0
  357. package/contracts/instance/IInstance.sol +63 -22
  358. package/contracts/instance/IInstanceService.sol +72 -0
  359. package/contracts/instance/Instance.sol +214 -54
  360. package/contracts/instance/InstanceAdmin.sol +277 -0
  361. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  362. package/contracts/instance/InstanceReader.sol +495 -0
  363. package/contracts/instance/InstanceService.sol +411 -0
  364. package/contracts/instance/InstanceServiceManager.sol +39 -0
  365. package/contracts/instance/InstanceStore.sol +287 -0
  366. package/contracts/instance/base/BalanceStore.sol +123 -0
  367. package/contracts/instance/base/Cloneable.sol +28 -0
  368. package/contracts/instance/base/ObjectCounter.sol +21 -0
  369. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  370. package/contracts/instance/base/ObjectSet.sol +79 -0
  371. package/contracts/instance/module/IAccess.sol +46 -0
  372. package/contracts/instance/module/IBundle.sol +20 -0
  373. package/contracts/instance/module/IComponents.sol +51 -0
  374. package/contracts/instance/module/IDistribution.sol +41 -0
  375. package/contracts/instance/module/IPolicy.sol +84 -0
  376. package/contracts/instance/module/IRisk.sol +11 -0
  377. package/contracts/mock/Dip.sol +2 -2
  378. package/contracts/oracle/BasicOracle.sol +47 -0
  379. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  380. package/contracts/oracle/IOracle.sol +36 -0
  381. package/contracts/oracle/IOracleComponent.sol +33 -0
  382. package/contracts/oracle/IOracleService.sol +66 -0
  383. package/contracts/oracle/Oracle.sol +156 -0
  384. package/contracts/oracle/OracleService.sol +291 -0
  385. package/contracts/oracle/OracleServiceManager.sol +39 -0
  386. package/contracts/pool/BasicPool.sol +154 -0
  387. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  388. package/contracts/pool/BundleService.sol +493 -0
  389. package/contracts/pool/BundleServiceManager.sol +39 -0
  390. package/contracts/pool/IBundleService.sol +143 -0
  391. package/contracts/pool/IPoolComponent.sol +68 -0
  392. package/contracts/pool/IPoolService.sol +167 -0
  393. package/contracts/pool/Pool.sol +335 -0
  394. package/contracts/pool/PoolService.sol +544 -0
  395. package/contracts/pool/PoolServiceManager.sol +39 -0
  396. package/contracts/product/ApplicationService.sol +259 -0
  397. package/contracts/product/ApplicationServiceManager.sol +38 -0
  398. package/contracts/product/BasicProduct.sol +53 -0
  399. package/contracts/product/BasicProductAuthorization.sol +42 -0
  400. package/contracts/product/ClaimService.sol +612 -0
  401. package/contracts/product/ClaimServiceManager.sol +38 -0
  402. package/contracts/product/IApplicationService.sol +63 -0
  403. package/contracts/product/IClaimService.sol +123 -0
  404. package/contracts/product/IPolicyService.sol +80 -0
  405. package/contracts/product/IPricingService.sol +39 -0
  406. package/contracts/product/IProductComponent.sol +59 -0
  407. package/contracts/product/IRiskService.sol +33 -0
  408. package/contracts/product/PolicyService.sol +691 -0
  409. package/contracts/product/PolicyServiceManager.sol +39 -0
  410. package/contracts/product/PricingService.sol +300 -0
  411. package/contracts/product/PricingServiceManager.sol +39 -0
  412. package/contracts/product/Product.sol +455 -0
  413. package/contracts/product/RiskService.sol +96 -0
  414. package/contracts/product/RiskServiceManager.sol +39 -0
  415. package/contracts/registry/ChainNft.sol +173 -61
  416. package/contracts/registry/IRegistry.sol +149 -45
  417. package/contracts/registry/IRegistryService.sol +62 -0
  418. package/contracts/registry/ITransferInterceptor.sol +6 -0
  419. package/contracts/registry/Registry.sol +668 -133
  420. package/contracts/registry/RegistryAdmin.sol +448 -0
  421. package/contracts/registry/RegistryService.sol +241 -0
  422. package/contracts/registry/RegistryServiceManager.sol +53 -0
  423. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  424. package/contracts/registry/ReleaseRegistry.sol +501 -0
  425. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  426. package/contracts/registry/TokenRegistry.sol +315 -0
  427. package/contracts/shared/Component.sol +265 -0
  428. package/contracts/shared/ComponentService.sol +745 -0
  429. package/contracts/shared/ComponentServiceManager.sol +38 -0
  430. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  431. package/contracts/shared/ContractLib.sol +38 -0
  432. package/contracts/shared/IComponent.sol +74 -0
  433. package/contracts/shared/IComponentService.sol +120 -0
  434. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  435. package/contracts/shared/IKeyValueStore.sol +54 -0
  436. package/contracts/shared/ILifecycle.sol +31 -0
  437. package/contracts/shared/INftOwnable.sol +25 -0
  438. package/contracts/shared/IPolicyHolder.sol +35 -0
  439. package/contracts/shared/IRegisterable.sol +26 -0
  440. package/contracts/shared/IRegistryLinked.sol +11 -0
  441. package/contracts/shared/IService.sol +25 -0
  442. package/contracts/shared/InitializableERC165.sol +27 -0
  443. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  444. package/contracts/shared/KeyValueStore.sol +131 -0
  445. package/contracts/shared/Lifecycle.sol +88 -0
  446. package/contracts/shared/NftIdSet.sol +65 -0
  447. package/contracts/shared/NftOwnable.sol +127 -0
  448. package/contracts/shared/PolicyHolder.sol +62 -0
  449. package/contracts/shared/Registerable.sol +85 -0
  450. package/contracts/shared/RegistryLinked.sol +44 -0
  451. package/contracts/shared/Service.sol +84 -0
  452. package/contracts/shared/TokenHandler.sol +139 -0
  453. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  454. package/contracts/staking/IStaking.sol +168 -0
  455. package/contracts/staking/IStakingService.sol +157 -0
  456. package/contracts/staking/StakeManagerLib.sol +224 -0
  457. package/contracts/staking/Staking.sol +497 -0
  458. package/contracts/staking/StakingLifecycle.sol +23 -0
  459. package/contracts/staking/StakingManager.sol +52 -0
  460. package/contracts/staking/StakingReader.sol +190 -0
  461. package/contracts/staking/StakingService.sol +407 -0
  462. package/contracts/staking/StakingServiceManager.sol +44 -0
  463. package/contracts/staking/StakingStore.sol +605 -0
  464. package/contracts/staking/TargetManagerLib.sol +211 -0
  465. package/contracts/type/AddressSet.sol +58 -0
  466. package/contracts/type/Amount.sol +150 -0
  467. package/contracts/{types → type}/Blocknumber.sol +27 -3
  468. package/contracts/type/ClaimId.sol +80 -0
  469. package/contracts/type/DistributorType.sol +55 -0
  470. package/contracts/type/Fee.sol +66 -0
  471. package/contracts/type/Key32.sol +50 -0
  472. package/contracts/type/NftId.sol +79 -0
  473. package/contracts/type/NftIdSet.sol +62 -0
  474. package/contracts/type/ObjectType.sol +276 -0
  475. package/contracts/type/PayoutId.sol +82 -0
  476. package/contracts/type/Referral.sol +90 -0
  477. package/contracts/type/RequestId.sol +75 -0
  478. package/contracts/type/RiskId.sol +57 -0
  479. package/contracts/type/RoleId.sol +162 -0
  480. package/contracts/type/Seconds.sol +101 -0
  481. package/contracts/type/Selector.sol +102 -0
  482. package/contracts/{types → type}/StateId.sol +64 -6
  483. package/contracts/type/String.sol +53 -0
  484. package/contracts/{types → type}/Timestamp.sol +52 -8
  485. package/contracts/type/UFixed.sol +355 -0
  486. package/contracts/type/Version.sol +110 -0
  487. package/contracts/upgradeability/IVersionable.sol +53 -0
  488. package/contracts/upgradeability/ProxyManager.sol +232 -0
  489. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  490. package/contracts/upgradeability/Versionable.sol +59 -0
  491. package/package.json +17 -7
  492. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  493. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  494. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  495. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  496. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  497. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  498. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  499. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  500. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  501. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  502. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  503. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  504. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  506. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  508. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  510. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  512. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  514. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  516. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  518. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  520. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  522. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  524. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  525. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  526. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  527. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  528. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  529. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  530. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  531. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  532. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  533. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  534. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  536. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  537. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  538. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  539. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  540. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  541. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  542. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  543. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  544. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  545. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  546. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  548. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  550. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  551. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  552. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  553. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  554. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  556. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  557. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  558. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  559. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  560. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  561. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  562. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  563. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  564. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  565. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  566. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  567. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  568. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  569. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  570. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  571. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  572. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  573. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  574. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  576. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  577. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  578. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  580. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  581. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  582. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  583. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  584. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  585. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  586. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  587. package/artifacts/contracts/mock/Dip.sol/DIP.dbg.json +0 -4
  588. package/artifacts/contracts/mock/Dip.sol/DIP.json +0 -338
  589. package/artifacts/contracts/mock/TestPool.sol/TestPool.dbg.json +0 -4
  590. package/artifacts/contracts/mock/TestPool.sol/TestPool.json +0 -294
  591. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.dbg.json +0 -4
  592. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.json +0 -384
  593. package/artifacts/contracts/mock/Usdc.sol/USDC.dbg.json +0 -4
  594. package/artifacts/contracts/mock/Usdc.sol/USDC.json +0 -338
  595. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  596. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  597. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  598. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  599. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  600. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  601. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  602. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  603. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  604. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  605. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  606. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  608. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  610. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  612. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  614. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  616. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  618. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  620. package/contracts/components/Component.sol +0 -77
  621. package/contracts/components/IPool.sol +0 -15
  622. package/contracts/components/IProduct.sol +0 -16
  623. package/contracts/components/Pool.sol +0 -52
  624. package/contracts/components/Product.sol +0 -89
  625. package/contracts/experiment/errors/Require.sol +0 -38
  626. package/contracts/experiment/errors/Revert.sol +0 -44
  627. package/contracts/experiment/inheritance/A.sol +0 -53
  628. package/contracts/experiment/inheritance/B.sol +0 -28
  629. package/contracts/experiment/inheritance/C.sol +0 -34
  630. package/contracts/experiment/inheritance/IA.sol +0 -13
  631. package/contracts/experiment/inheritance/IB.sol +0 -10
  632. package/contracts/experiment/inheritance/IC.sol +0 -12
  633. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  634. package/contracts/experiment/statemachine/ISM.sol +0 -25
  635. package/contracts/experiment/statemachine/README.md +0 -112
  636. package/contracts/experiment/statemachine/SM.sol +0 -57
  637. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  638. package/contracts/experiment/types/TypeA.sol +0 -47
  639. package/contracts/experiment/types/TypeB.sol +0 -29
  640. package/contracts/instance/access/Access.sol +0 -165
  641. package/contracts/instance/access/IAccess.sol +0 -63
  642. package/contracts/instance/component/ComponentModule.sol +0 -274
  643. package/contracts/instance/component/IComponent.sol +0 -74
  644. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  645. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  646. package/contracts/instance/policy/IPolicy.sol +0 -50
  647. package/contracts/instance/policy/PolicyModule.sol +0 -114
  648. package/contracts/instance/pool/IPoolModule.sol +0 -23
  649. package/contracts/instance/pool/PoolModule.sol +0 -81
  650. package/contracts/instance/product/IProductService.sol +0 -36
  651. package/contracts/instance/product/ProductService.sol +0 -136
  652. package/contracts/instance/treasury/ITreasury.sol +0 -91
  653. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  654. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  655. package/contracts/mock/TestPool.sol +0 -16
  656. package/contracts/mock/TestProduct.sol +0 -39
  657. package/contracts/mock/Usdc.sol +0 -26
  658. package/contracts/registry/IChainNft.sol +0 -21
  659. package/contracts/types/ChainId.sol +0 -38
  660. package/contracts/types/Fee.sol +0 -32
  661. package/contracts/types/NftId.sol +0 -51
  662. package/contracts/types/ObjectType.sol +0 -107
  663. package/contracts/types/UFixed.sol +0 -210
@@ -0,0 +1,194 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {
5
+ PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
6
+ } from "../../contracts/type/ObjectType.sol";
7
+
8
+ import {BundleSet} from "../instance/BundleSet.sol";
9
+ import {IAccess} from "../authorization/IAccess.sol";
10
+ import {Instance} from "../instance/Instance.sol";
11
+ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
12
+ import {InstanceStore} from "../instance/InstanceStore.sol";
13
+ import {Authorization} from "../authorization/Authorization.sol";
14
+
15
+
16
+ contract InstanceAuthorizationV3
17
+ is Authorization
18
+ {
19
+
20
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
21
+
22
+ string public constant INSTANCE_TARGET_NAME = "Instance";
23
+ string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
24
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
25
+ string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
26
+
27
+ constructor() Authorization(INSTANCE_TARGET_NAME) {}
28
+
29
+
30
+ function _setupRoles()
31
+ internal
32
+ override
33
+ {
34
+ // empty implementation
35
+ }
36
+
37
+
38
+ function _setupTargets()
39
+ internal
40
+ override
41
+ {
42
+ // instance target
43
+ _addTargetWithRole(
44
+ INSTANCE_TARGET_NAME,
45
+ _toTargetRoleId(INSTANCE()),
46
+ INSTANCE_ROLE_NAME);
47
+
48
+ // instance supporting targets
49
+ _addTarget(INSTANCE_STORE_TARGET_NAME);
50
+ _addTarget(INSTANCE_ADMIN_TARGET_NAME);
51
+ _addTarget(BUNDLE_SET_TARGET_NAME);
52
+
53
+ // service targets relevant to instance
54
+ _addServiceTargetWithRole(INSTANCE());
55
+ _addServiceTargetWithRole(COMPONENT());
56
+ _addServiceTargetWithRole(DISTRIBUTION());
57
+ _addServiceTargetWithRole(ORACLE());
58
+ _addServiceTargetWithRole(POOL());
59
+ _addServiceTargetWithRole(BUNDLE());
60
+ _addServiceTargetWithRole(PRODUCT());
61
+ _addServiceTargetWithRole(APPLICATION());
62
+ _addServiceTargetWithRole(POLICY());
63
+ _addServiceTargetWithRole(CLAIM());
64
+ }
65
+
66
+
67
+ function _setupTargetAuthorizations()
68
+ internal
69
+ override
70
+ {
71
+ _setupInstanceAuthorization();
72
+ _setupInstanceAdminAuthorization();
73
+ _setupInstanceStoreAuthorization();
74
+ _setupBundleSetAuthorization();
75
+
76
+ }
77
+
78
+
79
+ function _setupBundleSetAuthorization()
80
+ internal
81
+ {
82
+ IAccess.FunctionInfo[] storage functions;
83
+
84
+ // authorize bundle service role
85
+ functions = _authorizeForTarget(BUNDLE_SET_TARGET_NAME, getServiceRole(BUNDLE()));
86
+ _authorize(functions, BundleSet.linkPolicy.selector, "linkPolicy");
87
+ _authorize(functions, BundleSet.unlinkPolicy.selector, "unlinkPolicy");
88
+ _authorize(functions, BundleSet.add.selector, "add");
89
+ _authorize(functions, BundleSet.lock.selector, "lock");
90
+ _authorize(functions, BundleSet.unlock.selector, "unlock");
91
+ }
92
+
93
+
94
+ function _setupInstanceAuthorization()
95
+ internal
96
+ {
97
+ IAccess.FunctionInfo[] storage functions;
98
+
99
+ // authorize instance service role
100
+ functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
101
+ _authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
102
+ }
103
+
104
+
105
+ function _setupInstanceAdminAuthorization()
106
+ internal
107
+ {
108
+ IAccess.FunctionInfo[] storage functions;
109
+
110
+ // authorize instance role
111
+ functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _toTargetRoleId(INSTANCE()));
112
+ _authorize(functions, InstanceAdmin.grantRole.selector, "grantRole");
113
+
114
+ // authorize instance service role
115
+ // functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
116
+ }
117
+
118
+
119
+ function _setupInstanceStoreAuthorization()
120
+ internal
121
+ {
122
+ IAccess.FunctionInfo[] storage functions;
123
+
124
+ // authorize component service role
125
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
126
+ _authorize(functions, InstanceStore.createComponent.selector, "createComponent");
127
+ _authorize(functions, InstanceStore.updateComponent.selector, "updateComponent");
128
+ _authorize(functions, InstanceStore.createPool.selector, "createPool");
129
+ _authorize(functions, InstanceStore.createProduct.selector, "createProduct");
130
+ _authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
131
+ _authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
132
+ _authorize(functions, InstanceStore.decreaseBalance.selector, "decreaseBalance");
133
+ _authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
134
+ _authorize(functions, InstanceStore.decreaseFees.selector, "decreaseFees");
135
+
136
+ // authorize distribution service role
137
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
138
+ _authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
139
+ _authorize(functions, InstanceStore.updateDistributorType.selector, "updateDistributorType");
140
+ _authorize(functions, InstanceStore.updateDistributorTypeState.selector, "updateDistributorTypeState");
141
+ _authorize(functions, InstanceStore.createDistributor.selector, "createDistributor");
142
+ _authorize(functions, InstanceStore.updateDistributor.selector, "updateDistributor");
143
+ _authorize(functions, InstanceStore.updateDistributorState.selector, "updateDistributorState");
144
+ _authorize(functions, InstanceStore.createReferral.selector, "createReferral");
145
+ _authorize(functions, InstanceStore.updateReferral.selector, "updateReferral");
146
+ _authorize(functions, InstanceStore.updateReferralState.selector, "updateReferralState");
147
+
148
+ // authorize oracle service role
149
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ORACLE()));
150
+ _authorize(functions, InstanceStore.createRequest.selector, "createRequest");
151
+ _authorize(functions, InstanceStore.updateRequest.selector, "updateRequest");
152
+ _authorize(functions, InstanceStore.updateRequestState.selector, "updateRequestState");
153
+
154
+ // authorize pool service role
155
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POOL()));
156
+ _authorize(functions, InstanceStore.updatePool.selector, "updatePool");
157
+
158
+ // authorize bundle service role
159
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(BUNDLE()));
160
+ _authorize(functions, InstanceStore.createBundle.selector, "createBundle");
161
+ _authorize(functions, InstanceStore.updateBundle.selector, "updateBundle");
162
+ _authorize(functions, InstanceStore.updateBundleState.selector, "updateBundleState");
163
+ _authorize(functions, InstanceStore.increaseLocked.selector, "increaseLocked");
164
+ _authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
165
+
166
+ // authorize product service role
167
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(PRODUCT()));
168
+ _authorize(functions, InstanceStore.createRisk.selector, "createRisk");
169
+ _authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
170
+ _authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
171
+
172
+ // authorize application service role
173
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(APPLICATION()));
174
+ _authorize(functions, InstanceStore.createApplication.selector, "createApplication");
175
+ _authorize(functions, InstanceStore.updateApplication.selector, "updateApplication");
176
+ _authorize(functions, InstanceStore.updateApplicationState.selector, "updateApplicationState");
177
+
178
+ // authorize policy service role
179
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
180
+ _authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
181
+ _authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
182
+ _authorize(functions, InstanceStore.createPremium.selector, "createPremium");
183
+ _authorize(functions, InstanceStore.updatePremiumState.selector, "updatePremiumState");
184
+
185
+ // authorize claim service role
186
+ functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
187
+ _authorize(functions, InstanceStore.updatePolicyClaims.selector, "updatePolicyClaims");
188
+ _authorize(functions, InstanceStore.createClaim.selector, "createClaim");
189
+ _authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
190
+ _authorize(functions, InstanceStore.createPayout.selector, "createPayout");
191
+ _authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
192
+ }
193
+ }
194
+
@@ -0,0 +1,495 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
6
+ import {DistributorType} from "../type/DistributorType.sol";
7
+ import {Key32} from "../type/Key32.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
10
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
11
+ import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
12
+ import {RequestId} from "../type/RequestId.sol";
13
+ import {RiskId} from "../type/RiskId.sol";
14
+ import {RoleId} from "../type/RoleId.sol";
15
+ import {StateId} from "../type/StateId.sol";
16
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
17
+
18
+ import {IBundle} from "../instance/module/IBundle.sol";
19
+ import {IComponents} from "../instance/module/IComponents.sol";
20
+ import {IDistribution} from "../instance/module/IDistribution.sol";
21
+ import {IInstance} from "./IInstance.sol";
22
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
23
+ import {IOracle} from "../oracle/IOracle.sol";
24
+ import {IPolicy} from "../instance/module/IPolicy.sol";
25
+ import {IRisk} from "../instance/module/IRisk.sol";
26
+ import {TimestampLib} from "../type/Timestamp.sol";
27
+
28
+ import {InstanceStore} from "./InstanceStore.sol";
29
+ import {BundleSet} from "./BundleSet.sol";
30
+
31
+
32
+ contract InstanceReader {
33
+
34
+ error ErrorInstanceReaderAlreadyInitialized();
35
+ error ErrorInstanceReaderInstanceAddressZero();
36
+
37
+ bool private _initialized = false;
38
+
39
+ IInstance internal _instance;
40
+ InstanceStore internal _store;
41
+ BundleSet internal _bundleSet;
42
+
43
+ /// @dev This initializer needs to be called from the instance itself.
44
+ function initialize() public {
45
+ if(_initialized) {
46
+ revert ErrorInstanceReaderAlreadyInitialized();
47
+ }
48
+
49
+ initializeWithInstance(msg.sender);
50
+ }
51
+
52
+ /// @dev This initializer needs to be called from the instance itself.
53
+ function initializeWithInstance(address instanceAddress) public {
54
+ if(_initialized) {
55
+ revert ErrorInstanceReaderAlreadyInitialized();
56
+ }
57
+
58
+ _initialized = true;
59
+ _instance = IInstance(instanceAddress);
60
+ _store = _instance.getInstanceStore();
61
+ _bundleSet = _instance.getBundleSet();
62
+ }
63
+
64
+
65
+ // module specific functions
66
+
67
+ function getPolicyInfo(NftId policyNftId)
68
+ public
69
+ view
70
+ returns (IPolicy.PolicyInfo memory info)
71
+ {
72
+ bytes memory data = _store.getData(toPolicyKey(policyNftId));
73
+ if (data.length > 0) {
74
+ return abi.decode(data, (IPolicy.PolicyInfo));
75
+ }
76
+ }
77
+
78
+ function getPolicyState(NftId policyNftId)
79
+ public
80
+ view
81
+ returns (StateId state)
82
+ {
83
+ return _store.getState(toPolicyKey(policyNftId));
84
+ }
85
+
86
+ function getPremiumInfo(NftId policyNftId)
87
+ public
88
+ view
89
+ returns (IPolicy.PremiumInfo memory info)
90
+ {
91
+ bytes memory data = _store.getData(toPremiumKey(policyNftId));
92
+ if (data.length > 0) {
93
+ return abi.decode(data, (IPolicy.PremiumInfo));
94
+ }
95
+ }
96
+
97
+ function getPremiumInfoState(NftId policyNftId)
98
+ public
99
+ view
100
+ returns (StateId state)
101
+ {
102
+ return _store.getState(toPremiumKey(policyNftId));
103
+ }
104
+
105
+ function activeBundles(NftId poolNftId)
106
+ public
107
+ view
108
+ returns (uint256 bundles)
109
+ {
110
+ return _bundleSet.activeBundles(poolNftId);
111
+ }
112
+
113
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx)
114
+ public
115
+ view
116
+ returns (NftId bundleNftId)
117
+ {
118
+ return _bundleSet.getActiveBundleNftId(poolNftId, idx);
119
+ }
120
+
121
+ function getBundleState(NftId bundleNftId)
122
+ public
123
+ view
124
+ returns (StateId state)
125
+ {
126
+ return _store.getState(toBundleKey(bundleNftId));
127
+ }
128
+
129
+ /// @dev Returns true iff policy is active.
130
+ function policyIsActive(NftId policyNftId)
131
+ public
132
+ view
133
+ returns (bool isCloseable)
134
+ {
135
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
136
+
137
+ if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
138
+ if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
139
+ if (info.activatedAt > TimestampLib.blockTimestamp()) { return false; } // not yet active
140
+ if (info.expiredAt <= TimestampLib.blockTimestamp()) { return false; } // already expired
141
+
142
+ return true;
143
+ }
144
+
145
+ function claims(NftId policyNftId)
146
+ public
147
+ view
148
+ returns (uint16 claims)
149
+ {
150
+ return getPolicyInfo(policyNftId).claimsCount;
151
+ }
152
+
153
+
154
+ function getClaimId(uint idx)
155
+ public
156
+ view
157
+ returns (ClaimId claimId)
158
+ {
159
+ return ClaimIdLib.toClaimId(idx + 1);
160
+ }
161
+
162
+ function getClaimInfo(NftId policyNftId, ClaimId claimId)
163
+ public
164
+ view
165
+ returns (IPolicy.ClaimInfo memory info)
166
+ {
167
+ bytes memory data = _store.getData(claimId.toKey32(policyNftId));
168
+ if (data.length > 0) {
169
+ return abi.decode(data, (IPolicy.ClaimInfo));
170
+ }
171
+ }
172
+
173
+
174
+ function getClaimState(NftId policyNftId, ClaimId claimId)
175
+ public
176
+ view
177
+ returns (StateId state)
178
+ {
179
+ return _store.getState(claimId.toKey32(policyNftId));
180
+ }
181
+
182
+
183
+ function payouts(NftId policyNftId, ClaimId claimId)
184
+ public
185
+ view
186
+ returns (uint24 payouts)
187
+ {
188
+ return getClaimInfo(policyNftId, claimId).payoutsCount;
189
+ }
190
+
191
+
192
+ function getPayoutId(ClaimId claimId, uint24 idx)
193
+ public
194
+ view
195
+ returns (PayoutId payoutId)
196
+ {
197
+ return PayoutIdLib.toPayoutId(claimId, idx + 1);
198
+ }
199
+
200
+
201
+ function getRemainingClaimableAmount(NftId policyNftId)
202
+ public
203
+ view
204
+ returns (Amount remainingClaimableAmount)
205
+ {
206
+ IPolicy.PolicyInfo memory info = getPolicyInfo(policyNftId);
207
+ return info.sumInsuredAmount - info.claimAmount;
208
+ }
209
+
210
+ function getPayoutInfo(NftId policyNftId, PayoutId payoutId)
211
+ public
212
+ view
213
+ returns (IPolicy.PayoutInfo memory info)
214
+ {
215
+ bytes memory data = _store.getData(payoutId.toKey32(policyNftId));
216
+ if (data.length > 0) {
217
+ return abi.decode(data, (IPolicy.PayoutInfo));
218
+ }
219
+ }
220
+
221
+ function getPayoutState(NftId policyNftId, PayoutId payoutId)
222
+ public
223
+ view
224
+ returns (StateId state)
225
+ {
226
+ return _store.getState(payoutId.toKey32(policyNftId));
227
+ }
228
+
229
+ function getRiskInfo(RiskId riskId)
230
+ public
231
+ view
232
+ returns (IRisk.RiskInfo memory info)
233
+ {
234
+ bytes memory data = _store.getData(riskId.toKey32());
235
+ if (data.length > 0) {
236
+ return abi.decode(data, (IRisk.RiskInfo));
237
+ }
238
+ }
239
+
240
+ function getWallet(NftId componentNftId)
241
+ public
242
+ view
243
+ returns (address tokenHandler)
244
+ {
245
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
246
+
247
+ if (data.length > 0) {
248
+ IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
249
+ return info.wallet;
250
+ }
251
+ }
252
+
253
+ function getTokenHandler(NftId componentNftId)
254
+ public
255
+ view
256
+ returns (address tokenHandler)
257
+ {
258
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
259
+
260
+ if (data.length > 0) {
261
+ IComponents.ComponentInfo memory info = abi.decode(data, (IComponents.ComponentInfo));
262
+ return address(info.tokenHandler);
263
+ }
264
+ }
265
+
266
+ function getBundleInfo(NftId bundleNftId)
267
+ public
268
+ view
269
+ returns (IBundle.BundleInfo memory info)
270
+ {
271
+ bytes memory data = _store.getData(toBundleKey(bundleNftId));
272
+ if (data.length > 0) {
273
+ return abi.decode(data, (IBundle.BundleInfo));
274
+ }
275
+ }
276
+
277
+ function getDistributorTypeInfo(DistributorType distributorType)
278
+ public
279
+ view
280
+ returns (IDistribution.DistributorTypeInfo memory info)
281
+ {
282
+ bytes memory data = _store.getData(distributorType.toKey32());
283
+ if (data.length > 0) {
284
+ return abi.decode(data, (IDistribution.DistributorTypeInfo));
285
+ }
286
+ }
287
+
288
+ function getDistributorInfo(NftId distributorNftId)
289
+ public
290
+ view
291
+ returns (IDistribution.DistributorInfo memory info)
292
+ {
293
+ bytes memory data = _store.getData(toDistributorKey(distributorNftId));
294
+ if (data.length > 0) {
295
+ return abi.decode(data, (IDistribution.DistributorInfo));
296
+ }
297
+ }
298
+
299
+ function getBalanceAmount(NftId targetNftId) external view returns (Amount) {
300
+ return _store.getBalanceAmount(targetNftId);
301
+ }
302
+
303
+ function getLockedAmount(NftId targetNftId) external view returns (Amount) {
304
+ return _store.getLockedAmount(targetNftId);
305
+ }
306
+
307
+ function getFeeAmount(NftId targetNftId) external view returns (Amount) {
308
+ return _store.getFeeAmount(targetNftId);
309
+ }
310
+
311
+ function getComponentInfo(NftId componentNftId)
312
+ public
313
+ view
314
+ returns (IComponents.ComponentInfo memory info)
315
+ {
316
+ bytes memory data = _store.getData(toComponentKey(componentNftId));
317
+ if (data.length > 0) {
318
+ return abi.decode(data, (IComponents.ComponentInfo));
319
+ }
320
+ }
321
+
322
+ function getProductInfo(NftId productNftId)
323
+ public
324
+ view
325
+ returns (IComponents.ProductInfo memory info)
326
+ {
327
+ bytes memory data = _store.getData(toProductKey(productNftId));
328
+ if (data.length > 0) {
329
+ return abi.decode(data, (IComponents.ProductInfo));
330
+ }
331
+ }
332
+
333
+ function getPoolInfo(NftId poolNftId)
334
+ public
335
+ view
336
+ returns (IComponents.PoolInfo memory info)
337
+ {
338
+ bytes memory data = _store.getData(toPoolKey(poolNftId));
339
+ if (data.length > 0) {
340
+ return abi.decode(data, (IComponents.PoolInfo));
341
+ }
342
+ }
343
+
344
+ function getReferralInfo(ReferralId referralId)
345
+ public
346
+ view
347
+ returns (IDistribution.ReferralInfo memory info)
348
+ {
349
+ bytes memory data = _store.getData(referralId.toKey32());
350
+ if (data.length > 0) {
351
+ return abi.decode(data, (IDistribution.ReferralInfo));
352
+ }
353
+ }
354
+
355
+ function getRequestInfo(RequestId requestId)
356
+ public
357
+ view
358
+ returns (IOracle.RequestInfo memory requestInfo)
359
+ {
360
+ bytes memory data = _store.getData(requestId.toKey32());
361
+ if (data.length > 0) {
362
+ return abi.decode(data, (IOracle.RequestInfo));
363
+ }
364
+ }
365
+
366
+ function getMetadata(Key32 key)
367
+ public
368
+ view
369
+ returns (IKeyValueStore.Metadata memory metadata)
370
+ {
371
+ return _store.getMetadata(key);
372
+ }
373
+
374
+ function getState(Key32 key)
375
+ public
376
+ view
377
+ returns (StateId state)
378
+ {
379
+ return _store.getMetadata(key).state;
380
+ }
381
+
382
+
383
+ function toReferralId(
384
+ NftId distributionNftId,
385
+ string memory referralCode
386
+ )
387
+ public
388
+ pure
389
+ returns (ReferralId referralId)
390
+ {
391
+ return ReferralLib.toReferralId(
392
+ distributionNftId,
393
+ referralCode);
394
+ }
395
+
396
+
397
+ function getDiscountPercentage(ReferralId referralId)
398
+ public
399
+ view
400
+ returns (
401
+ UFixed discountPercentage,
402
+ ReferralStatus status
403
+ )
404
+ {
405
+ IDistribution.ReferralInfo memory info = getReferralInfo(
406
+ referralId);
407
+
408
+ if (info.expiryAt.eqz()) {
409
+ return (
410
+ UFixedLib.zero(),
411
+ REFERRAL_ERROR_UNKNOWN());
412
+ }
413
+
414
+ if (info.expiryAt < TimestampLib.blockTimestamp()) {
415
+ return (
416
+ UFixedLib.zero(),
417
+ REFERRAL_ERROR_EXPIRED());
418
+ }
419
+
420
+ if (info.usedReferrals >= info.maxReferrals) {
421
+ return (
422
+ UFixedLib.zero(),
423
+ REFERRAL_ERROR_EXHAUSTED());
424
+ }
425
+
426
+ return (
427
+ info.discountPercentage,
428
+ REFERRAL_OK()
429
+ );
430
+ }
431
+
432
+
433
+ function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
434
+ return _instance.getInstanceAdmin().hasRole(account, roleId);
435
+ }
436
+
437
+
438
+ function hasAdminRole(address account, RoleId roleId) public view returns (bool isMember) {
439
+ return _instance.getInstanceAdmin().hasAdminRole(account, roleId);
440
+ }
441
+
442
+
443
+ function isTargetLocked(address target) public view returns (bool) {
444
+ return _instance.getInstanceAdmin().isTargetLocked(target);
445
+ }
446
+
447
+ function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
448
+ return policyNftId.toKey32(POLICY());
449
+ }
450
+
451
+ function toPremiumKey(NftId policyNftId) public pure returns (Key32) {
452
+ return policyNftId.toKey32(PREMIUM());
453
+ }
454
+
455
+ function toDistributorKey(NftId distributorNftId) public pure returns (Key32) {
456
+ return distributorNftId.toKey32(DISTRIBUTOR());
457
+ }
458
+
459
+ function toBundleKey(NftId poolNftId) public pure returns (Key32) {
460
+ return poolNftId.toKey32(BUNDLE());
461
+ }
462
+
463
+ function toComponentKey(NftId componentNftId) public pure returns (Key32) {
464
+ return componentNftId.toKey32(COMPONENT());
465
+ }
466
+
467
+ function toDistributionKey(NftId distributionNftId) public pure returns (Key32) {
468
+ return distributionNftId.toKey32(DISTRIBUTION());
469
+ }
470
+
471
+ function toPoolKey(NftId poolNftId) public pure returns (Key32) {
472
+ return poolNftId.toKey32(POOL());
473
+ }
474
+
475
+ function toProductKey(NftId productNftId) public pure returns (Key32) {
476
+ return productNftId.toKey32(PRODUCT());
477
+ }
478
+
479
+ // low level function
480
+ function getInstance() external view returns (IInstance instance) {
481
+ return _instance;
482
+ }
483
+
484
+ function getInstanceStore() external view returns (IKeyValueStore store) {
485
+ return _store;
486
+ }
487
+
488
+ function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
489
+ return UFixedLib.toUFixed(value, exp);
490
+ }
491
+
492
+ function toInt(UFixed value) public pure returns (uint256) {
493
+ return UFixedLib.toInt(value);
494
+ }
495
+ }