@etherisc/gif-next 0.0.2-b51dcb9-674 → 0.0.2-b51e065-216

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 (732) hide show
  1. package/README.md +133 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +280 -331
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +271 -284
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionService.sol/IDistributionService.json} +615 -707
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1472 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2045 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1423 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1639 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2484 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +588 -95
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +516 -56
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +587 -218
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1849 -772
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +535 -192
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +215 -99
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1776 -780
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → oracle/IOracleService.sol/IOracleService.json} +275 -256
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -253
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/BasicPool.sol/BasicPool.json} +440 -293
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +905 -0
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  136. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +750 -378
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +446 -485
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1552 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +894 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IApplicationService.sol/IApplicationService.json} +305 -236
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +218 -76
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1016 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +222 -208
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  180. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +496 -31
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +320 -106
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +984 -128
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  199. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +391 -243
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +212 -96
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -141
  215. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  216. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +281 -207
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1535 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +854 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  230. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +130 -136
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  232. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/IComponentService.sol/IComponentService.json} +516 -748
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +42 -1
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +173 -0
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +103 -2
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -57
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +148 -90
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +96 -102
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +617 -8
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1646 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1196 -0
  278. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.json +2054 -0
  280. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +842 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1425 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +782 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  339. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  347. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  353. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  354. package/contracts/accounting/AccountingService.sol +274 -0
  355. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  356. package/contracts/accounting/IAccountingService.sol +47 -0
  357. package/contracts/authorization/AccessAdmin.sol +780 -0
  358. package/contracts/authorization/AccessAdminLib.sol +396 -0
  359. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  360. package/contracts/authorization/Authorization.sol +169 -0
  361. package/contracts/authorization/IAccess.sol +67 -0
  362. package/contracts/authorization/IAccessAdmin.sol +144 -0
  363. package/contracts/authorization/IAuthorization.sol +27 -0
  364. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  365. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  366. package/contracts/distribution/BasicDistribution.sol +141 -0
  367. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  368. package/contracts/distribution/Distribution.sol +247 -0
  369. package/contracts/distribution/DistributionService.sol +448 -0
  370. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  371. package/contracts/distribution/IDistributionComponent.sol +45 -0
  372. package/contracts/distribution/IDistributionService.sol +115 -0
  373. package/contracts/examples/fire/DamageLevel.sol +59 -0
  374. package/contracts/examples/fire/FirePool.sol +86 -0
  375. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  376. package/contracts/examples/fire/FireProduct.sol +433 -0
  377. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  378. package/contracts/examples/fire/FireUSD.sol +26 -0
  379. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  380. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  382. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  383. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleProduct.sol +391 -0
  385. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  386. package/contracts/instance/BundleSet.sol +130 -0
  387. package/contracts/instance/IInstance.sol +117 -49
  388. package/contracts/instance/IInstanceService.sol +81 -38
  389. package/contracts/instance/Instance.sol +251 -134
  390. package/contracts/instance/InstanceAdmin.sol +383 -0
  391. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  392. package/contracts/instance/InstanceReader.sol +507 -243
  393. package/contracts/instance/InstanceService.sol +387 -196
  394. package/contracts/instance/InstanceServiceManager.sol +14 -29
  395. package/contracts/instance/InstanceStore.sol +157 -71
  396. package/contracts/instance/RiskSet.sol +126 -0
  397. package/contracts/instance/base/BalanceStore.sol +121 -0
  398. package/contracts/instance/base/Cloneable.sol +28 -0
  399. package/contracts/instance/base/ObjectCounter.sol +20 -0
  400. package/contracts/instance/base/ObjectLifecycle.sol +108 -0
  401. package/contracts/instance/base/ObjectSet.sol +77 -0
  402. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  403. package/contracts/instance/module/IBundle.sol +9 -11
  404. package/contracts/instance/module/IComponents.sol +44 -23
  405. package/contracts/instance/module/IDistribution.sol +25 -13
  406. package/contracts/instance/module/IPolicy.sol +64 -36
  407. package/contracts/instance/module/IRisk.sol +6 -1
  408. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  409. package/contracts/oracle/BasicOracle.sol +45 -0
  410. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  411. package/contracts/oracle/IOracle.sol +41 -0
  412. package/contracts/oracle/IOracleComponent.sol +33 -0
  413. package/contracts/oracle/IOracleService.sol +66 -0
  414. package/contracts/oracle/Oracle.sol +154 -0
  415. package/contracts/oracle/OracleService.sol +310 -0
  416. package/contracts/oracle/OracleServiceManager.sol +39 -0
  417. package/contracts/pool/BasicPool.sol +162 -0
  418. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  419. package/contracts/pool/BundleService.sol +386 -0
  420. package/contracts/pool/BundleServiceManager.sol +39 -0
  421. package/contracts/pool/IBundleService.sol +116 -0
  422. package/contracts/pool/IPoolComponent.sol +62 -0
  423. package/contracts/pool/IPoolService.sol +170 -0
  424. package/contracts/pool/Pool.sol +333 -0
  425. package/contracts/pool/PoolLib.sol +341 -0
  426. package/contracts/pool/PoolService.sol +614 -0
  427. package/contracts/pool/PoolServiceManager.sol +39 -0
  428. package/contracts/product/ApplicationService.sol +327 -0
  429. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  430. package/contracts/product/BasicProduct.sol +49 -0
  431. package/contracts/product/BasicProductAuthorization.sol +63 -0
  432. package/contracts/product/ClaimService.sol +641 -0
  433. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  434. package/contracts/{instance/service → product}/IApplicationService.sol +37 -11
  435. package/contracts/{instance/service → product}/IClaimService.sol +64 -19
  436. package/contracts/product/IPolicyService.sol +102 -0
  437. package/contracts/product/IPricingService.sol +40 -0
  438. package/contracts/product/IProductComponent.sol +62 -0
  439. package/contracts/product/IRiskService.sol +48 -0
  440. package/contracts/product/PolicyService.sol +645 -0
  441. package/contracts/product/PolicyServiceLib.sol +139 -0
  442. package/contracts/product/PolicyServiceManager.sol +39 -0
  443. package/contracts/product/PricingService.sol +306 -0
  444. package/contracts/product/PricingServiceManager.sol +39 -0
  445. package/contracts/product/Product.sol +483 -0
  446. package/contracts/product/RiskService.sol +190 -0
  447. package/contracts/product/RiskServiceManager.sol +39 -0
  448. package/contracts/registry/ChainNft.sol +79 -40
  449. package/contracts/registry/IRegistry.sol +104 -30
  450. package/contracts/registry/IRegistryService.sol +34 -38
  451. package/contracts/registry/IRelease.sol +29 -0
  452. package/contracts/registry/ITransferInterceptor.sol +1 -2
  453. package/contracts/registry/Registry.sol +466 -197
  454. package/contracts/registry/RegistryAdmin.sol +188 -0
  455. package/contracts/registry/RegistryAuthorization.sol +284 -0
  456. package/contracts/registry/RegistryService.sol +90 -135
  457. package/contracts/registry/RegistryServiceManager.sol +23 -32
  458. package/contracts/registry/ReleaseAdmin.sol +195 -0
  459. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  460. package/contracts/registry/ReleaseRegistry.sol +520 -0
  461. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  462. package/contracts/registry/TokenRegistry.sol +263 -65
  463. package/contracts/shared/Component.sol +210 -0
  464. package/contracts/shared/ComponentService.sol +679 -0
  465. package/contracts/shared/ComponentServiceManager.sol +38 -0
  466. package/contracts/shared/ContractLib.sol +311 -0
  467. package/contracts/shared/IComponent.sol +58 -0
  468. package/contracts/shared/IComponentService.sol +111 -0
  469. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  470. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  471. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  472. package/contracts/shared/INftOwnable.sol +6 -2
  473. package/contracts/shared/IPolicyHolder.sol +16 -21
  474. package/contracts/shared/IRegisterable.sol +22 -1
  475. package/contracts/shared/IService.sol +12 -7
  476. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  477. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  478. package/contracts/shared/KeyValueStore.sol +131 -0
  479. package/contracts/shared/Lifecycle.sol +88 -0
  480. package/contracts/shared/NftIdSet.sol +65 -0
  481. package/contracts/shared/NftOwnable.sol +36 -25
  482. package/contracts/shared/PolicyHolder.sol +21 -52
  483. package/contracts/shared/Registerable.sol +55 -24
  484. package/contracts/shared/RegistryLinked.sol +9 -14
  485. package/contracts/shared/Service.sol +36 -41
  486. package/contracts/shared/TokenHandler.sol +320 -13
  487. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  488. package/contracts/staking/IStaking.sol +195 -0
  489. package/contracts/staking/IStakingService.sol +170 -0
  490. package/contracts/staking/Staking.sol +605 -0
  491. package/contracts/staking/StakingLib.sol +281 -0
  492. package/contracts/staking/StakingLifecycle.sol +23 -0
  493. package/contracts/staking/StakingManager.sol +52 -0
  494. package/contracts/staking/StakingReader.sol +199 -0
  495. package/contracts/staking/StakingService.sol +468 -0
  496. package/contracts/staking/StakingServiceManager.sol +45 -0
  497. package/contracts/staking/StakingStore.sol +606 -0
  498. package/contracts/staking/TargetManagerLib.sol +211 -0
  499. package/contracts/{types → type}/AddressSet.sol +1 -1
  500. package/contracts/{types → type}/Amount.sol +44 -3
  501. package/contracts/{types → type}/Blocknumber.sol +26 -3
  502. package/contracts/{types → type}/ClaimId.sol +6 -1
  503. package/contracts/{types → type}/Fee.sol +22 -21
  504. package/contracts/{types → type}/Key32.sol +2 -2
  505. package/contracts/type/Key32Set.sol +62 -0
  506. package/contracts/{types → type}/NftId.sol +21 -16
  507. package/contracts/{types → type}/NftIdSet.sol +2 -2
  508. package/contracts/type/ObjectType.sol +307 -0
  509. package/contracts/{types → type}/PayoutId.sol +10 -10
  510. package/contracts/{types → type}/Referral.sol +2 -1
  511. package/contracts/type/RequestId.sol +75 -0
  512. package/contracts/type/RiskId.sol +75 -0
  513. package/contracts/type/RoleId.sol +180 -0
  514. package/contracts/type/Seconds.sol +105 -0
  515. package/contracts/type/Selector.sol +107 -0
  516. package/contracts/{types → type}/StateId.sol +41 -2
  517. package/contracts/type/String.sol +65 -0
  518. package/contracts/{types → type}/Timestamp.sol +16 -7
  519. package/contracts/type/UFixed.sol +262 -0
  520. package/contracts/{types → type}/Version.sol +58 -7
  521. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  522. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  523. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  524. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  525. package/package.json +12 -8
  526. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  527. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  528. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  533. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  535. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  536. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  539. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  540. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  541. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  543. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  548. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  550. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  552. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  553. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  555. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -918
  557. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -648
  559. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1288
  561. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
  563. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
  565. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
  567. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1556
  569. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  571. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +0 -493
  573. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -840
  577. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -442
  582. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1281
  584. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
  586. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  587. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
  588. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  589. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
  590. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -1004
  592. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -688
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  599. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  601. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  602. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  604. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  605. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  606. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  608. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  609. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  610. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
  611. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  612. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  613. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  616. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  617. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  618. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  620. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  622. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  623. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  624. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  625. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  626. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  628. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  629. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  630. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  631. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  632. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -281
  634. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  636. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  638. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  640. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  642. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -312
  644. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  646. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  648. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  649. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  650. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  652. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  654. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  656. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  658. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  660. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  662. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  664. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  666. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  669. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  671. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  673. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  675. package/contracts/components/Component.sol +0 -272
  676. package/contracts/components/Distribution.sol +0 -285
  677. package/contracts/components/IComponent.sol +0 -90
  678. package/contracts/components/IDistributionComponent.sol +0 -71
  679. package/contracts/components/IPoolComponent.sol +0 -114
  680. package/contracts/components/IProductComponent.sol +0 -41
  681. package/contracts/components/Pool.sol +0 -302
  682. package/contracts/components/Product.sol +0 -375
  683. package/contracts/instance/BundleManager.sol +0 -126
  684. package/contracts/instance/Cloneable.sol +0 -51
  685. package/contracts/instance/InstanceAccessManager.sol +0 -541
  686. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
  687. package/contracts/instance/ObjectManager.sol +0 -82
  688. package/contracts/instance/base/ComponentService.sol +0 -148
  689. package/contracts/instance/base/KeyValueStore.sol +0 -149
  690. package/contracts/instance/base/Lifecycle.sol +0 -120
  691. package/contracts/instance/module/IAccess.sol +0 -54
  692. package/contracts/instance/module/ISetup.sol +0 -33
  693. package/contracts/instance/module/ITreasury.sol +0 -23
  694. package/contracts/instance/service/ApplicationService.sol +0 -186
  695. package/contracts/instance/service/BundleService.sol +0 -382
  696. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  697. package/contracts/instance/service/ClaimService.sol +0 -437
  698. package/contracts/instance/service/DistributionService.sol +0 -348
  699. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  700. package/contracts/instance/service/IBundleService.sol +0 -118
  701. package/contracts/instance/service/IDistributionService.sol +0 -87
  702. package/contracts/instance/service/IPolicyService.sol +0 -80
  703. package/contracts/instance/service/IPoolService.sol +0 -114
  704. package/contracts/instance/service/IPricingService.sol +0 -37
  705. package/contracts/instance/service/IProductService.sol +0 -40
  706. package/contracts/instance/service/PolicyService.sol +0 -376
  707. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  708. package/contracts/instance/service/PoolService.sol +0 -403
  709. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  710. package/contracts/instance/service/PricingService.sol +0 -275
  711. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  712. package/contracts/instance/service/ProductService.sol +0 -210
  713. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  714. package/contracts/registry/RegistryAccessManager.sol +0 -216
  715. package/contracts/registry/ReleaseManager.sol +0 -324
  716. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  717. package/contracts/shared/ContractDeployerLib.sol +0 -72
  718. package/contracts/test/TestFee.sol +0 -25
  719. package/contracts/test/TestRegisterable.sol +0 -18
  720. package/contracts/test/TestRoleId.sol +0 -14
  721. package/contracts/test/TestService.sol +0 -25
  722. package/contracts/test/TestToken.sol +0 -26
  723. package/contracts/test/TestVersion.sol +0 -44
  724. package/contracts/test/TestVersionable.sol +0 -17
  725. package/contracts/types/ChainId.sol +0 -38
  726. package/contracts/types/NumberId.sol +0 -52
  727. package/contracts/types/ObjectType.sol +0 -161
  728. package/contracts/types/RiskId.sol +0 -43
  729. package/contracts/types/RoleId.sol +0 -97
  730. package/contracts/types/Seconds.sol +0 -54
  731. package/contracts/types/UFixed.sol +0 -326
  732. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -4,37 +4,32 @@ pragma solidity ^0.8.20;
4
4
  import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
  import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
6
6
 
7
- import {Amount} from "../types/Amount.sol";
8
- import {ClaimId} from "../types/ClaimId.sol";
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {ClaimId} from "../type/ClaimId.sol";
9
9
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
10
- import {NftId} from "../types/NftId.sol";
11
- import {PayoutId} from "../types/PayoutId.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {PayoutId} from "../type/PayoutId.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
12
13
 
13
- /// @dev generic interface for contracts that need to hold policies and receive payouts
14
- /// GIF will notify policy holder contracts for policy creation and payout execution
14
+ /// @dev Generic interface for contracts that need to hold policies and receive payouts.
15
+ /// The framework notifies policy holder contracts for policy creation/expiry, claim confirmation and payout execution
15
16
  interface IPolicyHolder is
16
17
  IERC165,
17
18
  IERC721Receiver,
18
19
  IRegistryLinked
19
20
  {
20
21
 
21
- /// @dev callback function that will be called after successful policy activation
22
- /// active policies may open claims under the activated policy
23
- function policyActivated(NftId policyNftId) external;
22
+ /// @dev Callback function that will be called after successful policy activation.
23
+ /// Active policies may open claims under the activated policy.
24
+ function policyActivated(NftId policyNftId, Timestamp activatedAt) external;
24
25
 
25
- /// @dev callback function to indicate the specified policy has expired
26
- /// expired policies may no longer open claims
27
- /// it is optional for products to notifiy policy holder of expired claims
28
- function policyExpired(NftId policyNftId) external;
26
+ /// @dev Callback function to indicate the specified policy has expired.
27
+ /// expired policies no longer accept new claims.
28
+ function policyExpired(NftId policyNftId, Timestamp expiredAt) external;
29
29
 
30
- /// @dev callback function to notify the confirmation of the specified claim
31
- /// active policies may open claims under the activated policy
30
+ /// @dev Callback function to notify the confirmation of the specified claim.
32
31
  function claimConfirmed(NftId policyNftId, ClaimId claimId, Amount amount) external;
33
32
 
34
- /// @dev callback function that will be called after a successful payout
35
- function payoutExecuted(NftId policyNftId, PayoutId payoutId, address beneficiary, Amount amount) external;
36
-
37
- /// @dev determines policy and claim specific beneficiary address
38
- /// returned address will override GIF default where the policy nft holder is treated as beneficiary
39
- function getBeneficiary(NftId policyNftId, ClaimId claimId) external view returns (address beneficiary);
33
+ /// @dev Callback function to notify the successful payout.
34
+ function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external;
40
35
  }
@@ -1,13 +1,34 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
4
6
  import {INftOwnable} from "./INftOwnable.sol";
7
+ import {IRelease} from "../registry/IRelease.sol";
5
8
  import {IRegistry} from "../registry/IRegistry.sol";
6
9
 
10
+ /// @title IRegisterable
11
+ /// @dev Marks contracts that are intended to be registered in the registry.
12
+ ///
7
13
  interface IRegisterable is
8
- INftOwnable
14
+ IAccessManaged,
15
+ INftOwnable,
16
+ IRelease
9
17
  {
18
+ // __Registerable_init
19
+ error ErrorAuthorityInvalid(address authority);
20
+
21
+ // onlyActive()
22
+ error ErrorRegisterableNotActive();
23
+
24
+ /// @dev Returns true iff this contract managed by its authority is active.
25
+ /// Queries the IAccessManaged.authority().
26
+ function isActive() external view returns (bool active);
10
27
 
28
+ /// @dev retuns the object info relevant for registering for this contract
29
+ /// IMPORTANT information returned by this function may only be used
30
+ /// before the contract is registered in the registry.
31
+ /// Once registered this information MUST only be accessed via the registry.
11
32
  function getInitialInfo()
12
33
  external
13
34
  view
@@ -1,18 +1,23 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
6
  import {IRegisterable} from "./IRegisterable.sol";
7
- import {IVersionable} from "./IVersionable.sol";
8
- import {ObjectType} from "../types/ObjectType.sol";
7
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
9
10
 
10
11
  interface IService is
12
+ IAccessManaged,
11
13
  IRegisterable,
12
- IVersionable,
13
- IAccessManaged
14
+ IVersionable
14
15
  {
15
- error ErrorServiceNotImplemented();
16
-
16
+ /// @dev returns the domain for this service.
17
+ /// In any GIF release only one service for any given domain may be deployed.
17
18
  function getDomain() external pure returns(ObjectType serviceDomain);
19
+
20
+ /// @dev returns the GIF release specific role id.
21
+ /// These role ids are used to authorize service to service communication.
22
+ function getRoleId() external view returns(RoleId serviceRoleId);
18
23
  }
@@ -1,23 +1,31 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
6
6
 
7
- contract ERC165 is
7
+ contract InitializableERC165 is
8
8
  Initializable,
9
9
  IERC165
10
10
  {
11
11
  mapping(bytes4 => bool) private _isSupported;
12
12
 
13
13
  // @dev initializes with support for ERC165
14
- function initializeERC165() public onlyInitializing() {
14
+ function __ERC165_init() internal onlyInitializing() {
15
+ _initializeERC165();
16
+ }
17
+
18
+ function _initializeERC165() internal {
15
19
  _isSupported[type(IERC165).interfaceId] = true;
16
20
  }
17
21
 
18
22
  // @dev register support for provided interfaceId
19
23
  // includes initialization for ERC165_ID if not yet done
20
- function registerInterface(bytes4 interfaceId) public onlyInitializing() {
24
+ function _registerInterface(bytes4 interfaceId) internal onlyInitializing() {
25
+ _registerInterfaceNotInitializing(interfaceId);
26
+ }
27
+
28
+ function _registerInterfaceNotInitializing(bytes4 interfaceId) internal{
21
29
  _isSupported[interfaceId] = true;
22
30
  }
23
31
 
@@ -0,0 +1,194 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
+ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
+
9
+ import {Amount} from "../type/Amount.sol";
10
+ import {Component} from "./Component.sol";
11
+ import {IComponentService} from "./IComponentService.sol";
12
+ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
13
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
14
+ import {IComponents} from "../instance/module/IComponents.sol";
15
+ import {IInstanceService} from "../instance/IInstanceService.sol";
16
+ import {IInstance} from "../instance/IInstance.sol";
17
+ import {InstanceReader} from "../instance/InstanceReader.sol";
18
+ import {IRegistry} from "../registry/IRegistry.sol";
19
+ import {NftId} from "../type/NftId.sol";
20
+ import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
21
+ import {VersionPart} from "../type/Version.sol";
22
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
23
+ import {IAccess} from "../authorization/IAccess.sol";
24
+ import {TokenHandler} from "../shared/TokenHandler.sol";
25
+ import {VersionPart} from "../type/Version.sol";
26
+
27
+ // then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
28
+ // same pattern as for Service which is also upgradeable
29
+ abstract contract InstanceLinkedComponent is
30
+ Component,
31
+ IInstanceLinkedComponent
32
+ {
33
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
34
+ bytes32 public constant INSTANCE_LINKED_COMPONENT_LOCATION_V1 = 0xffe3d4462bded26a47154f4b8f6db494d2f772496965791d25bd456e342b7f00;
35
+
36
+ struct InstanceLinkedComponentStorage {
37
+ IInstance _instance; // instance for this component
38
+ InstanceReader _instanceReader; // instance reader for this component
39
+ IAuthorization _initialAuthorization;
40
+ IComponentService _componentService;
41
+ }
42
+
43
+ /// @inheritdoc IInstanceLinkedComponent
44
+ function withdrawFees(Amount amount)
45
+ external
46
+ virtual
47
+ restricted()
48
+ onlyOwner()
49
+ returns (Amount withdrawnAmount)
50
+ {
51
+ return _withdrawFees(amount);
52
+ }
53
+
54
+ /// @inheritdoc IInstanceLinkedComponent
55
+ function getInstance() public view virtual override returns (IInstance instance) {
56
+ return _getInstanceLinkedComponentStorage()._instance;
57
+ }
58
+
59
+ /// @inheritdoc IInstanceLinkedComponent
60
+ function getAuthorization() external view virtual returns (IAuthorization authorization) {
61
+ return _getInstanceLinkedComponentStorage()._initialAuthorization;
62
+ }
63
+
64
+ function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
65
+ assembly {
66
+ $.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
67
+ }
68
+ }
69
+
70
+ function _initializeInstanceLinkedComponent(
71
+ address registry,
72
+ NftId parentNftId,
73
+ string memory name,
74
+ ObjectType componentType,
75
+ IAuthorization authorization,
76
+ bool isInterceptor,
77
+ address initialOwner,
78
+ bytes memory componentData // data that will saved with the component info in the instance store
79
+ )
80
+ internal
81
+ virtual
82
+ onlyInitializing()
83
+ {
84
+ // validate registry, nft ids and get parent nft id
85
+ NftId instanceNftId = _checkAndGetInstanceNftId(
86
+ registry,
87
+ parentNftId,
88
+ componentType);
89
+
90
+ // set and check linked instance
91
+ InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
92
+ $._instance = IInstance(
93
+ IRegistry(registry).getObjectAddress(instanceNftId));
94
+
95
+ // set component specific parameters
96
+ _initializeComponent(
97
+ $._instance.authority(), // instance linked components need to point to instance admin
98
+ registry,
99
+ parentNftId,
100
+ name,
101
+ componentType,
102
+ isInterceptor,
103
+ initialOwner,
104
+ "", // registry data
105
+ componentData);
106
+
107
+ // set instance linked specific parameters
108
+ $._instanceReader = $._instance.getInstanceReader();
109
+ $._initialAuthorization = authorization;
110
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
111
+
112
+ // register interfaces
113
+ _registerInterface(type(IInstanceLinkedComponent).interfaceId);
114
+ }
115
+
116
+
117
+ function _checkAndGetInstanceNftId(
118
+ address registryAddress,
119
+ NftId parentNftId,
120
+ ObjectType componentType
121
+ )
122
+ internal
123
+ view
124
+ returns (NftId instanceNftId)
125
+ {
126
+ // if product, then parent is already instance
127
+ if (componentType == PRODUCT()) {
128
+ _checkAndGetRegistry(registryAddress, parentNftId, INSTANCE());
129
+ return parentNftId;
130
+ }
131
+
132
+ // if not product parent is product, and parent of product is instance
133
+ IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
134
+ return registry.getParentNftId(parentNftId);
135
+ }
136
+
137
+ /// @dev checks the and gets registry.
138
+ /// validates registry using a provided nft id and expected object type.
139
+ function _checkAndGetRegistry(
140
+ address registryAddress,
141
+ NftId objectNftId,
142
+ ObjectType requiredType
143
+ )
144
+ internal
145
+ view
146
+ returns (IRegistry registry)
147
+ {
148
+ registry = IRegistry(registryAddress);
149
+ IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
150
+
151
+ if (info.objectType != requiredType) {
152
+ revert ErrorInstanceLinkedComponentTypeMismatch(requiredType, info.objectType);
153
+ }
154
+ }
155
+
156
+
157
+ /// @dev for instance linked components the wallet address stored in the instance store.
158
+ /// updating needs to go throug component service
159
+ function _setWallet(address newWallet) internal virtual override onlyOwner {
160
+ IComponentService(_getServiceAddress(COMPONENT())).setWallet(newWallet);
161
+ }
162
+
163
+
164
+ function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
165
+ NftId componentNftId = getRegistry().getNftIdForAddress(address(this));
166
+
167
+ // if registered, attempt to return component info via instance reader
168
+ if (componentNftId.gtz()) {
169
+ // component registerd with registry
170
+ info = _getInstanceReader().getComponentInfo(getNftId());
171
+
172
+ // check if also registered with instance
173
+ if (address(info.tokenHandler) != address(0)) {
174
+ return info;
175
+ }
176
+ }
177
+
178
+ // return data from component contract if not yet registered
179
+ return super._getComponentInfo();
180
+ }
181
+
182
+
183
+ /// @dev returns reader for linked instance
184
+ function _getInstanceReader() internal view returns (InstanceReader reader) {
185
+ return _getInstanceLinkedComponentStorage()._instanceReader;
186
+ }
187
+
188
+ function _withdrawFees(Amount amount)
189
+ internal
190
+ returns (Amount withdrawnAmount)
191
+ {
192
+ return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
193
+ }
194
+ }
@@ -0,0 +1,131 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../type/Blocknumber.sol";
5
+ import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {ObjectType} from "../type/ObjectType.sol";
8
+ import {StateId, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
9
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
10
+
11
+ import {Lifecycle} from "./Lifecycle.sol";
12
+ import {IKeyValueStore} from "./IKeyValueStore.sol";
13
+
14
+ abstract contract KeyValueStore is
15
+ Lifecycle,
16
+ IKeyValueStore
17
+ {
18
+
19
+ mapping(Key32 key32 => Value value) private _value;
20
+
21
+ function _create(
22
+ Key32 key32,
23
+ bytes memory data
24
+ )
25
+ internal
26
+ {
27
+ ObjectType objectType = key32.toObjectType();
28
+ if (objectType.eqz()) {
29
+ revert ErrorKeyValueStoreTypeUndefined(objectType);
30
+ }
31
+
32
+ Metadata storage metadata = _value[key32].metadata;
33
+ if (metadata.state.gtz()) {
34
+ revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
35
+ }
36
+
37
+ if(!hasLifecycle(objectType)) {
38
+ revert ErrorKeyValueStoreNoLifecycle(objectType);
39
+ }
40
+
41
+ Blocknumber blocknumber = blockBlocknumber();
42
+ StateId initialState = getInitialState(objectType);
43
+
44
+ // set metadata
45
+ metadata.objectType = objectType;
46
+ metadata.state = initialState;
47
+ metadata.updatedIn = blocknumber;
48
+ metadata.createdIn = blocknumber;
49
+
50
+ // set data
51
+ _value[key32].data = data;
52
+
53
+ // solhint-disable-next-line avoid-tx-origin
54
+ emit LogInfoCreated(key32.toObjectType(), key32.toKeyId(), initialState, msg.sender, tx.origin);
55
+ }
56
+
57
+
58
+ function _update(
59
+ Key32 key32,
60
+ bytes memory data,
61
+ StateId state
62
+ )
63
+ internal
64
+ {
65
+ // update state
66
+ Blocknumber lastUpdatedIn = _updateState(key32, state);
67
+
68
+ // update data
69
+ _value[key32].data = data;
70
+
71
+ // solhint-disable-next-line avoid-tx-origin
72
+ emit LogInfoUpdated(key32.toObjectType(), key32.toKeyId(), state, msg.sender, tx.origin, lastUpdatedIn);
73
+ }
74
+
75
+
76
+ function _updateState(
77
+ Key32 key32,
78
+ StateId state
79
+ )
80
+ internal
81
+ returns (Blocknumber lastUpdatedIn)
82
+ {
83
+ if (state.eqz()) {
84
+ revert ErrorKeyValueStoreStateZero(key32);
85
+ }
86
+
87
+ Metadata storage metadata = _value[key32].metadata;
88
+ StateId stateOld = metadata.state;
89
+ lastUpdatedIn = metadata.updatedIn;
90
+
91
+ if (stateOld.eqz()) {
92
+ revert ErrorKeyValueStoreNotExisting(key32);
93
+ }
94
+
95
+ // update state
96
+ if(state != KEEP_STATE()) {
97
+ checkTransition(stateOld, metadata.objectType, stateOld, state);
98
+ metadata.state = state;
99
+
100
+ // solhint-disable-next-line avoid-tx-origin
101
+ emit LogStateUpdated(key32.toObjectType(), key32.toKeyId(), stateOld, state, msg.sender, tx.origin, lastUpdatedIn);
102
+ }
103
+
104
+ // update metadata
105
+ metadata.updatedIn = blockBlocknumber();
106
+ }
107
+
108
+ function exists(Key32 key32) public view returns (bool) {
109
+ return _value[key32].metadata.state.gtz();
110
+ }
111
+
112
+ function get(Key32 key32) public view returns (Value memory value) {
113
+ return _value[key32];
114
+ }
115
+
116
+ function getMetadata(Key32 key32) public view returns (Metadata memory metadata) {
117
+ return _value[key32].metadata;
118
+ }
119
+
120
+ function getData(Key32 key32) public view returns (bytes memory data) {
121
+ return _value[key32].data;
122
+ }
123
+
124
+ function getState(Key32 key32) public view returns (StateId state) {
125
+ return _value[key32].metadata.state;
126
+ }
127
+
128
+ function toKey32(ObjectType objectType, KeyId id) external pure override returns(Key32) {
129
+ return Key32Lib.toKey32(objectType, id);
130
+ }
131
+ }
@@ -0,0 +1,88 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ObjectType} from "../type/ObjectType.sol";
5
+ import {StateId, zeroStateId} from "../type/StateId.sol";
6
+ import {ILifecycle} from "./ILifecycle.sol";
7
+
8
+ abstract contract Lifecycle is
9
+ ILifecycle
10
+ {
11
+ mapping(ObjectType objectType => StateId initialState)
12
+ private _initialState;
13
+
14
+ mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
15
+ private _isValidTransition;
16
+
17
+ /// @dev child class must implement and CALL setup func at deployment/initializaton time
18
+ function _setupLifecycle() internal virtual;
19
+
20
+ function setInitialState(ObjectType ttype, StateId state) internal virtual {
21
+ assert(_initialState[ttype] == zeroStateId());
22
+ _initialState[ttype] = state;
23
+ }
24
+
25
+ function setStateTransition(ObjectType ttype, StateId oldState, StateId newState) internal virtual {
26
+ assert(_isValidTransition[ttype][oldState][newState] == false);
27
+ _isValidTransition[ttype][oldState][newState] = true;
28
+ }
29
+
30
+ function hasLifecycle(
31
+ ObjectType objectType
32
+ )
33
+ public
34
+ view
35
+ override
36
+ returns (bool)
37
+ {
38
+ return _initialState[objectType].gtz();
39
+ }
40
+
41
+ function getInitialState(
42
+ ObjectType objectType
43
+ )
44
+ public
45
+ view
46
+ returns (StateId)
47
+ {
48
+ return _initialState[objectType];
49
+ }
50
+
51
+ function checkTransition(
52
+ StateId stateId,
53
+ ObjectType objectType,
54
+ StateId expectedFromId,
55
+ StateId toId
56
+ )
57
+ public
58
+ view
59
+ {
60
+ // revert if no life cycle support
61
+ if (_initialState[objectType].eqz()) {
62
+ revert ErrorNoLifecycle(address(this), objectType);
63
+ }
64
+
65
+ // revert if current state is not expected `from` state
66
+ if(stateId != expectedFromId) {
67
+ revert ErrorFromStateMissmatch(address(this), objectType, stateId, expectedFromId);
68
+ }
69
+
70
+ // enforce valid state transition
71
+ if (!_isValidTransition[objectType][stateId][toId]) {
72
+ revert ErrorInvalidStateTransition(
73
+ address(this),
74
+ objectType,
75
+ stateId,
76
+ toId
77
+ );
78
+ }
79
+ }
80
+
81
+ function isValidTransition(
82
+ ObjectType objectType,
83
+ StateId fromId,
84
+ StateId toId
85
+ ) public view returns (bool) {
86
+ return _isValidTransition[objectType][fromId][toId];
87
+ }
88
+ }
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+
7
+ contract NftIdSet {
8
+
9
+ error ErrorNftIdSetManagerNotOwner(address owner, address sender);
10
+ error ErrorNftIdSetManagerOwnerAlreadySet(address owner);
11
+ error ErrorNftIdSetManagerNftIdInvalid(NftId objectNftId);
12
+ error ErrorNftIdSetManagerAlreadyAdded(NftId objectNftId);
13
+
14
+ LibNftIdSet.Set private _allObjects;
15
+ LibNftIdSet.Set private _activeObjects;
16
+ address private _owner;
17
+
18
+ modifier onlyOwner() {
19
+ if(msg.sender != _owner) {
20
+ revert ErrorNftIdSetManagerNotOwner(_owner, msg.sender);
21
+ }
22
+ _;
23
+ }
24
+
25
+ constructor() {
26
+ _owner = msg.sender;
27
+ }
28
+
29
+ function add(NftId objectNftId) external onlyOwner {
30
+ LibNftIdSet.add(_allObjects, objectNftId);
31
+ LibNftIdSet.add(_activeObjects, objectNftId);
32
+ }
33
+
34
+ function activate(NftId componentNftId, NftId objectNftId) external onlyOwner {
35
+ LibNftIdSet.add(_activeObjects, objectNftId);
36
+ }
37
+
38
+ function deactivate(NftId componentNftId, NftId objectNftId) external onlyOwner {
39
+ LibNftIdSet.remove(_activeObjects, objectNftId);
40
+ }
41
+
42
+ function nftIds() external view returns (uint256 ids) {
43
+ return LibNftIdSet.size(_allObjects);
44
+ }
45
+
46
+ function getNftId(uint256 idx) external view returns (NftId) {
47
+ return LibNftIdSet.getElementAt(_allObjects, idx);
48
+ }
49
+
50
+ function exists(NftId objectNftId) external view returns (bool) {
51
+ return LibNftIdSet.contains(_allObjects, objectNftId);
52
+ }
53
+
54
+ function activeNftIds() external view returns (uint256 ids) {
55
+ return LibNftIdSet.size(_activeObjects);
56
+ }
57
+
58
+ function getActiveNftId(uint256 idx) external view returns (NftId) {
59
+ return LibNftIdSet.getElementAt(_activeObjects, idx);
60
+ }
61
+
62
+ function isActive(NftId objectNftId) external view returns (bool) {
63
+ return LibNftIdSet.contains(_activeObjects, objectNftId);
64
+ }
65
+ }