@etherisc/gif-next 0.0.2-e875d61-189 → 0.0.2-e8b06c8-540

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 (719) hide show
  1. package/README.md +267 -40
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  12. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  16. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1191 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +900 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +843 -0
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +240 -1457
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +752 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +386 -1697
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  46. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
  48. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  49. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  50. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  52. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1735 -0
  54. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1155 -0
  56. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  57. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  58. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  59. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3592 -0
  60. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  62. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  64. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  66. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  67. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
  68. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  70. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  72. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  73. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  74. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  76. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  78. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  80. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  81. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  82. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  84. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  86. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +959 -0
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +256 -221
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  140. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  151. package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
  152. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  154. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  172. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1237 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  179. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  180. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  181. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  182. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  183. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  184. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  185. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  186. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  187. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  188. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  189. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  190. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  191. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  192. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  193. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  194. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  196. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  198. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  200. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  201. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  213. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  219. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +154 -152
  222. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  224. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  226. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  232. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  233. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  237. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  238. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  239. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  245. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  248. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  249. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  250. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  252. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  254. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  255. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  256. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  258. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  259. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -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 +179 -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 +312 -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 +86 -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 +198 -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/{types → type}/StateId.sol/StateIdLib.json +3 -3
  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 +293 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -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 +49 -0
  322. package/contracts/authorization/AccessAdmin.sol +622 -0
  323. package/contracts/authorization/Authorization.sol +218 -0
  324. package/contracts/authorization/IAccess.sol +48 -0
  325. package/contracts/authorization/IAccessAdmin.sol +136 -0
  326. package/contracts/authorization/IAuthorization.sol +54 -0
  327. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  328. package/contracts/authorization/IServiceAuthorization.sol +35 -0
  329. package/contracts/authorization/InstanceAdmin.sol +108 -0
  330. package/contracts/authorization/ModuleAuthorization.sol +203 -0
  331. package/contracts/authorization/ServiceAuthorization.sol +86 -0
  332. package/contracts/distribution/BasicDistribution.sol +149 -0
  333. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  334. package/contracts/distribution/Distribution.sol +283 -0
  335. package/contracts/distribution/DistributionService.sol +303 -0
  336. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  337. package/contracts/distribution/IDistributionComponent.sol +78 -0
  338. package/contracts/distribution/IDistributionService.sol +85 -0
  339. package/contracts/instance/BundleManager.sol +126 -0
  340. package/contracts/instance/IInstance.sol +79 -43
  341. package/contracts/instance/IInstanceService.sol +91 -0
  342. package/contracts/instance/Instance.sol +278 -56
  343. package/contracts/instance/InstanceAdmin.sol +334 -0
  344. package/contracts/instance/InstanceAdminNew.sol +261 -0
  345. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  346. package/contracts/instance/InstanceAuthorizationsLib.sol +422 -0
  347. package/contracts/instance/InstanceReader.sol +410 -0
  348. package/contracts/instance/InstanceService.sol +516 -0
  349. package/contracts/instance/InstanceServiceManager.sol +44 -0
  350. package/contracts/instance/InstanceStore.sol +273 -0
  351. package/contracts/instance/base/BalanceStore.sol +123 -0
  352. package/contracts/instance/base/Cloneable.sol +28 -0
  353. package/contracts/instance/base/ObjectCounter.sol +21 -0
  354. package/contracts/instance/base/ObjectManager.sol +79 -0
  355. package/contracts/instance/module/IAccess.sol +46 -0
  356. package/contracts/instance/module/IBundle.sol +20 -0
  357. package/contracts/instance/module/IComponents.sol +52 -0
  358. package/contracts/instance/module/IDistribution.sol +42 -0
  359. package/contracts/instance/module/IPolicy.sol +84 -0
  360. package/contracts/instance/module/IRisk.sol +11 -0
  361. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  362. package/contracts/oracle/BasicOracle.sol +48 -0
  363. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  364. package/contracts/oracle/IOracle.sol +36 -0
  365. package/contracts/oracle/IOracleComponent.sol +32 -0
  366. package/contracts/oracle/IOracleService.sol +65 -0
  367. package/contracts/oracle/Oracle.sol +157 -0
  368. package/contracts/oracle/OracleService.sol +278 -0
  369. package/contracts/oracle/OracleServiceManager.sol +42 -0
  370. package/contracts/pool/BasicPool.sol +164 -0
  371. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  372. package/contracts/pool/BundleService.sol +296 -0
  373. package/contracts/pool/BundleServiceManager.sol +42 -0
  374. package/contracts/pool/IBundleService.sol +106 -0
  375. package/contracts/pool/IPoolComponent.sol +52 -0
  376. package/contracts/pool/IPoolService.sol +150 -0
  377. package/contracts/pool/Pool.sol +311 -0
  378. package/contracts/pool/PoolService.sol +452 -0
  379. package/contracts/pool/PoolServiceManager.sol +42 -0
  380. package/contracts/product/ApplicationService.sol +254 -0
  381. package/contracts/product/ApplicationServiceManager.sol +38 -0
  382. package/contracts/product/BasicProduct.sol +82 -0
  383. package/contracts/product/BasicProductAuthorization.sol +40 -0
  384. package/contracts/product/ClaimService.sol +442 -0
  385. package/contracts/product/ClaimServiceManager.sol +38 -0
  386. package/contracts/product/IApplicationService.sol +62 -0
  387. package/contracts/product/IClaimService.sol +99 -0
  388. package/contracts/product/IPolicyService.sol +78 -0
  389. package/contracts/product/IPricingService.sol +39 -0
  390. package/contracts/product/IProductComponent.sol +39 -0
  391. package/contracts/product/IProductService.sol +33 -0
  392. package/contracts/product/PolicyService.sol +475 -0
  393. package/contracts/product/PolicyServiceManager.sol +42 -0
  394. package/contracts/product/PricingService.sol +300 -0
  395. package/contracts/product/PricingServiceManager.sol +42 -0
  396. package/contracts/product/Product.sol +392 -0
  397. package/contracts/product/ProductService.sol +124 -0
  398. package/contracts/product/ProductServiceManager.sol +42 -0
  399. package/contracts/registry/ChainNft.sol +95 -37
  400. package/contracts/registry/IRegistry.sol +95 -28
  401. package/contracts/registry/IRegistryService.sol +69 -0
  402. package/contracts/registry/ITransferInterceptor.sol +7 -0
  403. package/contracts/registry/Registry.sol +482 -281
  404. package/contracts/registry/RegistryAdmin.sol +363 -0
  405. package/contracts/registry/RegistryService.sol +266 -0
  406. package/contracts/registry/RegistryServiceManager.sol +53 -0
  407. package/contracts/registry/ReleaseManager.sol +530 -0
  408. package/contracts/registry/ServiceAuthorizationV3.sol +202 -0
  409. package/contracts/registry/TokenRegistry.sol +315 -0
  410. package/contracts/shared/AccessManagerCustom.sol +741 -0
  411. package/contracts/shared/AccessManagerExtended.sol +481 -0
  412. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  413. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  414. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  415. package/contracts/shared/Component.sol +281 -0
  416. package/contracts/shared/ComponentService.sol +626 -0
  417. package/contracts/shared/ComponentServiceManager.sol +35 -0
  418. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  419. package/contracts/shared/ERC165.sol +15 -9
  420. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  421. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  422. package/contracts/shared/IComponent.sol +70 -0
  423. package/contracts/shared/IComponentService.sol +102 -0
  424. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  425. package/contracts/shared/IKeyValueStore.sol +53 -0
  426. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  427. package/contracts/shared/INftOwnable.sol +23 -0
  428. package/contracts/shared/IPolicyHolder.sol +45 -0
  429. package/contracts/shared/IRegisterable.sol +10 -19
  430. package/contracts/shared/IRegistryLinked.sol +11 -0
  431. package/contracts/shared/IService.sol +25 -0
  432. package/contracts/shared/IVersionable.sol +38 -37
  433. package/contracts/shared/InitializableCustom.sol +177 -0
  434. package/contracts/shared/InstanceLinkedComponent.sol +152 -0
  435. package/contracts/shared/KeyValueStore.sol +127 -0
  436. package/contracts/{instance/base → shared}/Lifecycle.sol +47 -9
  437. package/contracts/shared/NftIdSetManager.sol +65 -0
  438. package/contracts/shared/NftOwnable.sol +107 -0
  439. package/contracts/shared/PolicyHolder.sol +102 -0
  440. package/contracts/shared/ProxyManager.sol +199 -0
  441. package/contracts/shared/Registerable.sol +54 -65
  442. package/contracts/shared/RegistryLinked.sol +43 -0
  443. package/contracts/shared/Service.sol +83 -0
  444. package/contracts/shared/TokenHandler.sol +58 -0
  445. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  446. package/contracts/shared/Versionable.sol +38 -68
  447. package/contracts/staking/IStaking.sol +168 -0
  448. package/contracts/staking/IStakingService.sol +153 -0
  449. package/contracts/staking/StakeManagerLib.sol +231 -0
  450. package/contracts/staking/Staking.sol +513 -0
  451. package/contracts/staking/StakingManager.sol +54 -0
  452. package/contracts/staking/StakingReader.sol +187 -0
  453. package/contracts/staking/StakingService.sol +411 -0
  454. package/contracts/staking/StakingServiceManager.sol +44 -0
  455. package/contracts/staking/StakingStore.sol +613 -0
  456. package/contracts/staking/TargetManagerLib.sol +207 -0
  457. package/contracts/{types → type}/AddressSet.sol +1 -1
  458. package/contracts/type/Amount.sol +128 -0
  459. package/contracts/{types → type}/Blocknumber.sol +21 -3
  460. package/contracts/type/ClaimId.sol +75 -0
  461. package/contracts/type/DistributorType.sol +55 -0
  462. package/contracts/type/Fee.sol +66 -0
  463. package/contracts/{types → type}/Key32.sol +8 -3
  464. package/contracts/{types → type}/NftId.sol +21 -15
  465. package/contracts/type/NftIdSet.sol +62 -0
  466. package/contracts/type/ObjectType.sol +275 -0
  467. package/contracts/type/PayoutId.sol +82 -0
  468. package/contracts/type/Referral.sol +89 -0
  469. package/contracts/type/RequestId.sol +75 -0
  470. package/contracts/type/RiskId.sol +43 -0
  471. package/contracts/type/RoleId.sol +202 -0
  472. package/contracts/type/Seconds.sol +81 -0
  473. package/contracts/type/Selector.sol +102 -0
  474. package/contracts/{types → type}/StateId.sol +39 -5
  475. package/contracts/type/String.sol +53 -0
  476. package/contracts/{types → type}/Timestamp.sol +27 -14
  477. package/contracts/type/UFixed.sol +332 -0
  478. package/contracts/{types → type}/Version.sol +15 -2
  479. package/package.json +11 -7
  480. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  481. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  482. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  483. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  484. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  485. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  486. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  487. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  488. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -455
  489. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  490. package/artifacts/contracts/components/Product.sol/Product.json +0 -348
  491. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  493. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  495. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  497. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  499. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  501. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  503. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  505. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  507. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  509. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  511. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  513. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  515. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  517. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  519. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  521. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  523. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  525. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  526. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  527. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  528. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  529. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  530. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -81
  531. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  532. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  533. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  535. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  538. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  540. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  543. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  544. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  545. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  548. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -265
  550. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -265
  553. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  555. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  556. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  557. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  559. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -136
  561. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  562. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  563. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -136
  565. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  567. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -273
  568. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -273
  570. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  572. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  573. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  574. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  575. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  576. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  577. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  578. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  579. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  580. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  581. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  582. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  583. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  584. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -531
  585. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  587. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -531
  589. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  591. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  594. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  597. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  599. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  600. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  601. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  602. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  604. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  606. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -455
  608. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -436
  610. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  612. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  614. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  616. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  617. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  618. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  620. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  622. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  623. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  624. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  625. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  627. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  636. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  638. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  640. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  643. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  645. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  647. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  649. package/contracts/components/BaseComponent.sol +0 -94
  650. package/contracts/components/IBaseComponent.sol +0 -19
  651. package/contracts/components/IPoolComponent.sol +0 -57
  652. package/contracts/components/IProductComponent.sol +0 -19
  653. package/contracts/components/Pool.sol +0 -191
  654. package/contracts/components/Product.sol +0 -134
  655. package/contracts/experiment/errors/Require.sol +0 -38
  656. package/contracts/experiment/errors/Revert.sol +0 -44
  657. package/contracts/experiment/inheritance/A.sol +0 -53
  658. package/contracts/experiment/inheritance/B.sol +0 -28
  659. package/contracts/experiment/inheritance/C.sol +0 -34
  660. package/contracts/experiment/inheritance/IA.sol +0 -13
  661. package/contracts/experiment/inheritance/IB.sol +0 -10
  662. package/contracts/experiment/inheritance/IC.sol +0 -12
  663. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  664. package/contracts/experiment/statemachine/ISM.sol +0 -25
  665. package/contracts/experiment/statemachine/README.md +0 -112
  666. package/contracts/experiment/statemachine/SM.sol +0 -57
  667. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  668. package/contracts/experiment/types/TypeA.sol +0 -47
  669. package/contracts/experiment/types/TypeB.sol +0 -29
  670. package/contracts/instance/IInstanceLinked.sol +0 -8
  671. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  672. package/contracts/instance/base/IInstanceBase.sol +0 -19
  673. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  674. package/contracts/instance/base/IService.sol +0 -15
  675. package/contracts/instance/base/InstanceBase.sol +0 -84
  676. package/contracts/instance/base/KeyValueStore.sol +0 -161
  677. package/contracts/instance/base/ModuleBase.sol +0 -46
  678. package/contracts/instance/base/ServiceBase.sol +0 -37
  679. package/contracts/instance/module/access/Access.sol +0 -149
  680. package/contracts/instance/module/access/IAccess.sol +0 -53
  681. package/contracts/instance/module/bundle/BundleModule.sol +0 -135
  682. package/contracts/instance/module/bundle/IBundle.sol +0 -51
  683. package/contracts/instance/module/compensation/CompensationModule.sol +0 -17
  684. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  685. package/contracts/instance/module/component/ComponentModule.sol +0 -81
  686. package/contracts/instance/module/component/IComponent.sol +0 -29
  687. package/contracts/instance/module/policy/IPolicy.sol +0 -59
  688. package/contracts/instance/module/policy/PolicyModule.sol +0 -89
  689. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  690. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  691. package/contracts/instance/module/risk/IRisk.sol +0 -10
  692. package/contracts/instance/module/risk/RiskModule.sol +0 -17
  693. package/contracts/instance/module/treasury/ITreasury.sol +0 -96
  694. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  695. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -171
  696. package/contracts/instance/service/ComponentOwnerService.sol +0 -155
  697. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  698. package/contracts/instance/service/IPoolService.sol +0 -30
  699. package/contracts/instance/service/IProductService.sol +0 -58
  700. package/contracts/instance/service/PoolService.sol +0 -129
  701. package/contracts/instance/service/ProductService.sol +0 -366
  702. package/contracts/registry/IChainNft.sol +0 -21
  703. package/contracts/registry/IRegistryLinked.sol +0 -8
  704. package/contracts/shared/IOwnable.sol +0 -6
  705. package/contracts/test/TestFee.sol +0 -25
  706. package/contracts/test/TestPool.sol +0 -24
  707. package/contracts/test/TestProduct.sol +0 -51
  708. package/contracts/test/TestRegisterable.sol +0 -19
  709. package/contracts/test/TestRoleId.sol +0 -14
  710. package/contracts/test/TestService.sol +0 -32
  711. package/contracts/test/TestToken.sol +0 -26
  712. package/contracts/test/TestVersion.sol +0 -44
  713. package/contracts/test/TestVersionable.sol +0 -17
  714. package/contracts/types/ChainId.sol +0 -38
  715. package/contracts/types/Fee.sol +0 -51
  716. package/contracts/types/NftIdSet.sol +0 -60
  717. package/contracts/types/ObjectType.sol +0 -123
  718. package/contracts/types/RoleId.sol +0 -38
  719. package/contracts/types/UFixed.sol +0 -209
@@ -0,0 +1,78 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Fee} from "../type/Fee.sol";
5
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
+ import {ReferralId, ReferralStatus} from "../type/Referral.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {UFixed} from "../type/UFixed.sol";
10
+ import {Timestamp} from "../type/Timestamp.sol";
11
+
12
+ interface IDistributionComponent is IInstanceLinkedComponent {
13
+
14
+ error ErrorDistributionNotDistributor(address distributor);
15
+ error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
16
+
17
+ event LogDistributorUpdated(address to, address caller);
18
+
19
+ // TODO cleanup
20
+ // function setFees(
21
+ // Fee memory distributionFee,
22
+ // Fee memory minDistributionOwnerFee
23
+ // ) external;
24
+
25
+ // function createDistributorType(
26
+ // string memory name,
27
+ // UFixed minDiscountPercentage,
28
+ // UFixed maxDiscountPercentage,
29
+ // UFixed commissionPercentage,
30
+ // uint32 maxReferralCount,
31
+ // uint32 maxReferralLifetime,
32
+ // bool allowSelfReferrals,
33
+ // bool allowRenewals,
34
+ // bytes memory data
35
+ // ) external returns (DistributorType distributorType);
36
+
37
+ // function createDistributor(
38
+ // address distributor,
39
+ // DistributorType distributorType,
40
+ // bytes memory data
41
+ // ) external returns(NftId distributorNftId);
42
+
43
+ // function updateDistributorType(
44
+ // NftId distributorNftId,
45
+ // DistributorType distributorType,
46
+ // bytes memory data
47
+ // ) external;
48
+
49
+ /// @dev Returns true iff the provided address is registered as a distributor with this distribution component.
50
+ function isDistributor(address candidate) external view returns (bool);
51
+
52
+ /// @dev Returns the distributor Nft Id for the provided address
53
+ function getDistributorNftId(address distributor) external view returns (NftId distributorNftId);
54
+
55
+ function getDiscountPercentage(
56
+ string memory referralCode
57
+ ) external view returns (UFixed discountPercentage, ReferralStatus status);
58
+
59
+ function getReferralId(
60
+ string memory referralCode
61
+ ) external returns (ReferralId referralId);
62
+
63
+ function calculateRenewalFeeAmount(
64
+ ReferralId referralId,
65
+ uint256 netPremiumAmount
66
+ ) external view returns (uint256 feeAmount);
67
+
68
+ /// @dev Callback function to process a renewal of a policy.
69
+ /// The default implementation is empty.
70
+ /// Overwrite this function to implement a use case specific behaviour.
71
+ function processRenewal(
72
+ ReferralId referralId,
73
+ uint256 feeAmount
74
+ ) external;
75
+
76
+ /// @dev Returns true to ensure component is called when transferring distributor Nft Ids.
77
+ function isVerifying() external view returns (bool verifying);
78
+ }
@@ -0,0 +1,85 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {Fee} from "../type/Fee.sol";
7
+ import {IPolicy} from "../instance/module/IPolicy.sol";
8
+ import {IService} from "../shared/IService.sol";
9
+ import {UFixed} from "../type/UFixed.sol";
10
+ import {DistributorType} from "../type/DistributorType.sol";
11
+ import {ReferralId} from "../type/Referral.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
13
+
14
+
15
+ interface IDistributionService is IService {
16
+
17
+ error ErrorDistributionServiceCallerNotRegistered(address caller);
18
+ error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
19
+ error ErrorIDistributionServiceCallerNotDistributor(address caller);
20
+ error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
21
+ error ErrorIDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
22
+ error ErrorIDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
23
+ error ErrorIDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
24
+ error ErrorIDistributionServiceExpiryTooLong(uint256 maxReferralLifetime, uint256 expiryAt);
25
+ error ErrorIDistributionServiceInvalidReferral(string code);
26
+ error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
27
+ error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
28
+ error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
29
+
30
+ error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
31
+ error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
32
+
33
+ error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
34
+ error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
35
+
36
+ function createDistributorType(
37
+ string memory name,
38
+ UFixed minDiscountPercentage,
39
+ UFixed maxDiscountPercentage,
40
+ UFixed commissionPercentage,
41
+ uint32 maxReferralCount,
42
+ uint32 maxReferralLifetime,
43
+ bool allowSelfReferrals,
44
+ bool allowRenewals,
45
+ bytes memory data
46
+ )
47
+ external
48
+ returns (DistributorType distributorType);
49
+
50
+ function createDistributor(
51
+ address distributor,
52
+ DistributorType distributorType,
53
+ bytes memory data
54
+ ) external returns (NftId distributorNftId);
55
+
56
+ // TODO re-enable and reorganize (service contract too large)
57
+ // function updateDistributorType(
58
+ // NftId distributorNftId,
59
+ // DistributorType distributorType,
60
+ // bytes memory data
61
+ // ) external;
62
+
63
+ function createReferral(
64
+ NftId distributorNftId,
65
+ string memory code,
66
+ UFixed discountPercentage,
67
+ uint32 maxReferrals,
68
+ Timestamp expiryAt,
69
+ bytes memory data
70
+ )
71
+ external
72
+ returns (ReferralId referralId);
73
+
74
+ /// @dev callback from product service when selling a policy for a specific referralId
75
+ function processSale(
76
+ NftId distributionNftId,
77
+ ReferralId referralId,
78
+ IPolicy.Premium memory premium
79
+ ) external;
80
+
81
+ function referralIsValid(
82
+ NftId distributorNftId,
83
+ ReferralId referralId
84
+ ) external view returns (bool isValid);
85
+ }
@@ -0,0 +1,126 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IInstance} from "./IInstance.sol";
5
+ import {INSTANCE} from "../type/ObjectType.sol";
6
+ import {InstanceReader} from "./InstanceReader.sol";
7
+ import {IPolicy} from "../instance/module/IPolicy.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {TimestampLib} from "../type/Timestamp.sol";
12
+
13
+ import {ObjectManager} from "./base/ObjectManager.sol";
14
+
15
+ contract BundleManager is
16
+ ObjectManager
17
+ {
18
+
19
+ event LogBundleManagerPolicyLinked(NftId bundleNftId, NftId policyNftId);
20
+ event LogBundleManagerPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
21
+
22
+ event LogBundleManagerBundleAdded(NftId poolNftId, NftId bundleNftId);
23
+ event LogBundleManagerBundleUnlocked(NftId poolNftId, NftId bundleNftId);
24
+ event LogBundleManagerBundleLocked(NftId poolNftId, NftId bundleNftId);
25
+ event LogBundleManagerBundleClosed(NftId poolNftId, NftId bundleNftId);
26
+
27
+ error ErrorBundleManagerPolicyAlreadyActivated(NftId policyNftId);
28
+ error ErrorBundleManagerBundleLocked(NftId bundleNftId, NftId policyNftId);
29
+ error ErrorBundleManagerPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
30
+ error ErrorBundleManagerPolicyNotCloseable(NftId policyNftId);
31
+ error ErrorBundleManagerBundleUnknown(NftId bundleNftId);
32
+ error ErrorBundleManagerBundleNotRegistered(NftId bundleNftId);
33
+
34
+ mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
35
+
36
+ /// @dev links a policy to its bundle
37
+ // to link a policy it MUST NOT yet have been linked
38
+ function linkPolicy(NftId policyNftId) external restricted() {
39
+ NftId bundleNftId = _instance.getInstanceReader().getPolicyInfo(policyNftId).bundleNftId;
40
+ // decision will likely depend on the decision what to check here and what in the service
41
+ NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
42
+
43
+ // ensure bundle is unlocked (in active set) and registered with this instance
44
+ if (!_isActive(poolNftId, bundleNftId)) {
45
+ revert ErrorBundleManagerBundleLocked(bundleNftId, policyNftId);
46
+ }
47
+
48
+ LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
49
+ emit LogBundleManagerPolicyLinked(bundleNftId, policyNftId);
50
+ }
51
+
52
+
53
+ /// @dev unlinks a policy from its bundle
54
+ // to unlink a policy it must closable, ie. meet one of the following criterias
55
+ // - the policy MUST be past its expiry period and it MUST NOT have any open claims
56
+ // - the policy's payoutAmount MUST be equal to its sumInsuredAmount and MUST NOT have any open claims
57
+ function unlinkPolicy(NftId policyNftId) external restricted() {
58
+ IPolicy.PolicyInfo memory policyInfo = _instance.getInstanceReader().getPolicyInfo(policyNftId);
59
+
60
+ NftId bundleNftId = policyInfo.bundleNftId;
61
+ // decision will likely depend on the decision what to check here and what in the service
62
+ NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
63
+
64
+ // ensure bundle is registered with this instance
65
+ if (!_contains(poolNftId, bundleNftId)) {
66
+ revert ErrorBundleManagerBundleUnknown(bundleNftId);
67
+ }
68
+
69
+ LibNftIdSet.remove(_activePolicies[bundleNftId], policyNftId);
70
+ emit LogBundleManagerPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
71
+ }
72
+
73
+
74
+ /// @dev add a new bundle to a pool registerd with this instance
75
+ // the corresponding pool is fetched via instance reader
76
+ function add(NftId bundleNftId) external restricted() {
77
+ NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
78
+
79
+ // ensure pool is registered with instance
80
+ if(poolNftId.eqz()) {
81
+ revert ErrorBundleManagerBundleNotRegistered(bundleNftId);
82
+ }
83
+
84
+ _add(poolNftId, bundleNftId);
85
+ emit LogBundleManagerBundleAdded(poolNftId, bundleNftId);
86
+ }
87
+
88
+
89
+ /// @dev unlocked (active) bundles are available to collateralize new policies
90
+ function unlock(NftId bundleNftId) external restricted() {
91
+ NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
92
+ _activate(poolNftId, bundleNftId);
93
+ emit LogBundleManagerBundleUnlocked(poolNftId, bundleNftId);
94
+ }
95
+
96
+ /// @dev locked (deactivated) bundles may not collateralize any new policies
97
+ function lock(NftId bundleNftId) external restricted() {
98
+ NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
99
+ _deactivate(poolNftId, bundleNftId);
100
+ emit LogBundleManagerBundleLocked(poolNftId, bundleNftId);
101
+ }
102
+
103
+ function bundles(NftId poolNftId) external view returns(uint256) {
104
+ return _objects(poolNftId);
105
+ }
106
+
107
+ function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
108
+ return _getObject(poolNftId, idx);
109
+ }
110
+
111
+ function activeBundles(NftId poolNftId) external view returns(uint256) {
112
+ return _activeObjs(poolNftId);
113
+ }
114
+
115
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
116
+ return _getActiveObject(poolNftId, idx);
117
+ }
118
+
119
+ function activePolicies(NftId bundleNftId) external view returns(uint256) {
120
+ return LibNftIdSet.size(_activePolicies[bundleNftId]);
121
+ }
122
+
123
+ function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
124
+ return LibNftIdSet.getElementAt(_activePolicies[bundleNftId], idx);
125
+ }
126
+ }
@@ -1,50 +1,86 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {ClaimId} from "../type/ClaimId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {PayoutId} from "../type/PayoutId.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {StateId} from "../type/StateId.sol";
12
+ import {ReferralId} from "../type/Referral.sol";
13
+ import {RiskId} from "../type/RiskId.sol";
14
+ import {VersionPart} from "../type/Version.sol";
15
+ import {Key32} from "../type/Key32.sol";
16
+ import {RoleId} from "../type/RoleId.sol";
17
+ import {Seconds} from "../type/Seconds.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
5
19
 
6
- import {IVersionable} from "../shared/IVersionable.sol";
7
20
  import {IRegisterable} from "../shared/IRegisterable.sol";
8
- import {IOwnable} from "../shared/IOwnable.sol";
9
- import {RoleId} from "../types/RoleId.sol";
10
-
11
- import {IAccessModule} from "./module/access/IAccess.sol";
12
- import {IBundleModule} from "./module/bundle/IBundle.sol";
13
- import {ICompensationModule} from "./module/compensation/ICompensation.sol";
14
- import {IComponentModule} from "./module/component/IComponent.sol";
15
- import {IPolicyModule} from "./module/policy/IPolicy.sol";
16
- import {IPoolModule} from "./module/pool/IPoolModule.sol";
17
- import {IRiskModule} from "./module/risk/IRisk.sol";
18
- import {ITreasuryModule} from "./module/treasury/ITreasury.sol";
19
-
20
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
21
- import {IRegistry, IRegistryLinked} from "../registry/IRegistryLinked.sol";
22
-
23
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
24
- import {IProductService} from "./service/IProductService.sol";
25
- import {IPoolService} from "./service/IPoolService.sol";
26
- import {IInstanceBase} from "./base/IInstanceBase.sol";
27
-
28
- // solhint-disable-next-line no-empty-blocks
29
- interface IInstance is
30
- IERC165,
31
- IVersionable,
32
- IRegisterable,
33
- IAccessModule,
34
- IPolicyModule,
35
- IPoolModule,
36
- IBundleModule,
37
- IComponentModule,
38
- ITreasuryModule,
39
- ICompensationModule,
40
- IInstanceBase
21
+
22
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
23
+
24
+ import {InstanceAdminNew} from "./InstanceAdminNew.sol";
25
+ import {BundleManager} from "./BundleManager.sol";
26
+ import {InstanceReader} from "./InstanceReader.sol";
27
+ import {InstanceStore} from "./InstanceStore.sol";
28
+
29
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
30
+
31
+ import {IAccess} from "./module/IAccess.sol";
32
+
33
+ import {IBundleService} from "../pool/IBundleService.sol";
34
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
35
+ import {IPolicyService} from "../product/IPolicyService.sol";
36
+ import {IPoolService} from "../pool/IPoolService.sol";
37
+ import {IProductService} from "../product/IProductService.sol";
38
+ import {IPolicyService} from "../product/IPolicyService.sol";
39
+ import {IBundleService} from "../pool/IBundleService.sol";
40
+
41
+
42
+ interface IInstance is
43
+ IRegisterable,
44
+ ITransferInterceptor,
45
+ IAccessManaged
41
46
  {
42
- function getRegistry() external view override (IPolicyModule, IRegisterable) returns (IRegistry registry);
43
- function getOwner() external view override (IOwnable, IAccessModule) returns(address owner);
47
+ error ErrorInstanceInstanceAdminZero();
48
+ error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
49
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
50
+
51
+ error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
52
+ error ErrorInstanceBundleManagerInstanceMismatch(address instance);
53
+ error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
54
+
55
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
56
+
57
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
58
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
59
+
60
+ struct InstanceInfo {
61
+ uint64 requestsCount;
62
+ }
63
+
64
+ function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
65
+ function grantRole(RoleId roleId, address account) external;
66
+ function revokeRole(RoleId roleId, address account) external;
67
+
68
+ function createTarget(address target, string memory name) external;
69
+ function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
70
+ function setTargetLocked(address target, bool locked) external;
71
+
72
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
73
+ function setStakingRewardRate(UFixed rewardRate) external;
74
+ function refillStakingRewardReserves(Amount dipAmount) external;
44
75
 
45
- function getKeyValueStore() external view override (IInstanceBase) returns (IKeyValueStore keyValueStore);
46
- function getComponentOwnerService() external view override (IInstanceBase, IComponentModule) returns(IComponentOwnerService);
47
- function getProductService() external view override (IInstanceBase, IBundleModule, IPolicyModule) returns(IProductService);
48
- function getPoolService() external view override (IInstanceBase, IBundleModule, IPoolModule) returns(IPoolService);
76
+ /// @dev Defunds the staking reward reserves for the specified target.
77
+ /// Permissioned: only the target owner may call this function.
78
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
49
79
 
50
- }
80
+ // get instance release and supporting contracts
81
+ function getMajorVersion() external pure returns (VersionPart majorVersion);
82
+ function getInstanceReader() external view returns (InstanceReader);
83
+ function getBundleManager() external view returns (BundleManager);
84
+ function getInstanceAdmin() external view returns (InstanceAdminNew);
85
+ function getInstanceStore() external view returns (InstanceStore);
86
+ }
@@ -0,0 +1,91 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {BundleManager} from "./BundleManager.sol";
6
+ import {Instance} from "./Instance.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IService} from "../shared/IService.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {ObjectType} from "../type/ObjectType.sol";
11
+ import {RoleId} from "../type/RoleId.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+ import {UFixed} from "../type/UFixed.sol";
14
+ import {VersionPart} from "../type/Version.sol";
15
+
16
+ interface IInstanceService is IService {
17
+
18
+ // onlyInstance
19
+ error ErrorInstanceServiceNotRegistered(address instance);
20
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
21
+ error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
22
+
23
+ error ErrorInstanceServiceComponentNotInstanceLinked(address component);
24
+
25
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
26
+ error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleManagerAlreadySet();
28
+ error ErrorInstanceServiceInstanceAddressZero();
29
+
30
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
31
+ error ErrorInstanceServiceInstanceReaderAddressZero();
32
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
33
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
34
+
35
+ error ErrorInstanceServiceInstanceAdminZero();
36
+ error ErrorInstanceServiceInstanceReaderZero();
37
+ error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceInstanceStoreZero();
39
+
40
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
41
+ error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
43
+ error ErrorInstanceServiceBundleMangerInstanceMismatch();
44
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
45
+
46
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
47
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
48
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
49
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
50
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
51
+
52
+ event LogInstanceCloned(NftId instanceNftId, address instance);
53
+
54
+ function createInstanceClone()
55
+ external
56
+ returns (
57
+ // TODO check if Instance can be changed to IInstance
58
+ Instance clonedInstance,
59
+ NftId instanceNftId
60
+ );
61
+
62
+
63
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
64
+ function setStakingRewardRate(UFixed rewardRate) external;
65
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
66
+
67
+ /// @dev Defunds the staking reward reserves for the specified target.
68
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
69
+
70
+ /// @dev Sets up the component authorization for the specified instance.
71
+ /// The authorization is based on the authz specification provided by the component via getAuthorization.
72
+ function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
73
+
74
+ function createComponentTarget(
75
+ NftId instanceNftId,
76
+ address targetAddress,
77
+ string memory targetName,
78
+ bytes4[][] memory selectors,
79
+ RoleId[] memory roles
80
+ ) external;
81
+
82
+ function createGifTarget(
83
+ NftId instanceNftId,
84
+ address targetAddress,
85
+ string memory targetName,
86
+ bytes4[][] memory selectors,
87
+ RoleId[] memory roles
88
+ ) external;
89
+
90
+ function setComponentLocked(bool locked) external;
91
+ }