@etherisc/gif-next 0.0.2-bdb6804-509 → 0.0.2-bdbfee9-660

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 (736) hide show
  1. package/README.md +130 -10
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +824 -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 +1225 -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} +285 -324
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1675 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +931 -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} +274 -275
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +368 -129
  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 +1461 -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 +2026 -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 +1404 -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 +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -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 +2452 -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 +651 -97
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +445 -99
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +651 -221
  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 +1977 -620
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +461 -279
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +195 -115
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1962 -855
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/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 +938 -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 +753 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +311 -174
  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 -241
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1023 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +791 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +320 -465
  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 +1303 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +851 -0
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → pool/IBundleService.sol/IBundleService.json} +373 -327
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1251 -0
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  138. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +368 -426
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +847 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +881 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +771 -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} +455 -482
  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 +1533 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +875 -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} +191 -201
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1085 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1017 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service → product}/IPricingService.sol/IPricingService.json +205 -90
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IRiskService.sol/IRiskService.json} +130 -115
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1385 -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 +835 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +913 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +795 -0
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  180. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +698 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +755 -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 +494 -29
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +296 -109
  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 +993 -137
  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 +371 -250
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +193 -109
  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 -154
  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} +259 -212
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1497 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +835 -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 +137 -131
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  232. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +571 -763
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -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 +19 -10
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +79 -5
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  267. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Service.sol/Service.json +76 -109
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1627 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1177 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +2035 -0
  281. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +823 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +616 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1406 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +763 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +265 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  347. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  348. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +637 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  354. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  355. package/contracts/accounting/AccountingService.sol +274 -0
  356. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  357. package/contracts/accounting/IAccountingService.sol +47 -0
  358. package/contracts/authorization/AccessAdmin.sol +780 -0
  359. package/contracts/authorization/AccessAdminLib.sol +396 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  361. package/contracts/authorization/Authorization.sol +172 -0
  362. package/contracts/authorization/IAccess.sol +67 -0
  363. package/contracts/authorization/IAccessAdmin.sol +144 -0
  364. package/contracts/authorization/IAuthorization.sol +27 -0
  365. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  366. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  367. package/contracts/distribution/BasicDistribution.sol +141 -0
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  369. package/contracts/distribution/Distribution.sol +247 -0
  370. package/contracts/distribution/DistributionService.sol +435 -0
  371. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  372. package/contracts/distribution/IDistributionComponent.sol +45 -0
  373. package/contracts/distribution/IDistributionService.sol +109 -0
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +86 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +433 -0
  378. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  379. package/contracts/examples/fire/FireUSD.sol +26 -0
  380. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BundleSet.sol +130 -0
  388. package/contracts/instance/IInstance.sol +124 -39
  389. package/contracts/instance/IInstanceService.sol +79 -50
  390. package/contracts/instance/Instance.sol +258 -111
  391. package/contracts/instance/InstanceAdmin.sol +383 -0
  392. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  393. package/contracts/instance/InstanceReader.sol +530 -191
  394. package/contracts/instance/InstanceService.sol +403 -211
  395. package/contracts/instance/InstanceServiceManager.sol +14 -29
  396. package/contracts/instance/InstanceStore.sol +174 -95
  397. package/contracts/instance/RiskSet.sol +118 -0
  398. package/contracts/instance/base/BalanceStore.sol +121 -0
  399. package/contracts/instance/base/Cloneable.sol +28 -0
  400. package/contracts/instance/base/ObjectCounter.sol +20 -0
  401. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  402. package/contracts/instance/base/ObjectSet.sol +77 -0
  403. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  404. package/contracts/instance/module/IBundle.sol +9 -11
  405. package/contracts/instance/module/IComponents.sol +44 -23
  406. package/contracts/instance/module/IDistribution.sol +25 -12
  407. package/contracts/instance/module/IPolicy.sol +71 -38
  408. package/contracts/instance/module/IRisk.sol +6 -1
  409. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  410. package/contracts/oracle/BasicOracle.sol +45 -0
  411. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  412. package/contracts/oracle/IOracle.sol +41 -0
  413. package/contracts/oracle/IOracleComponent.sol +33 -0
  414. package/contracts/oracle/IOracleService.sol +66 -0
  415. package/contracts/oracle/Oracle.sol +154 -0
  416. package/contracts/oracle/OracleService.sol +310 -0
  417. package/contracts/oracle/OracleServiceManager.sol +39 -0
  418. package/contracts/pool/BasicPool.sol +173 -0
  419. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  420. package/contracts/pool/BundleService.sol +394 -0
  421. package/contracts/pool/BundleServiceManager.sol +39 -0
  422. package/contracts/{instance/service → pool}/IBundleService.sol +52 -30
  423. package/contracts/pool/IPoolComponent.sol +62 -0
  424. package/contracts/pool/IPoolService.sol +164 -0
  425. package/contracts/pool/Pool.sol +343 -0
  426. package/contracts/pool/PoolLib.sol +359 -0
  427. package/contracts/pool/PoolService.sol +593 -0
  428. package/contracts/pool/PoolServiceManager.sol +39 -0
  429. package/contracts/product/ApplicationService.sol +299 -0
  430. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  431. package/contracts/product/BasicProduct.sol +49 -0
  432. package/contracts/product/BasicProductAuthorization.sol +63 -0
  433. package/contracts/product/ClaimService.sol +639 -0
  434. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  435. package/contracts/{instance/service → product}/IApplicationService.sol +22 -17
  436. package/contracts/product/IClaimService.sol +135 -0
  437. package/contracts/product/IPolicyService.sol +102 -0
  438. package/contracts/product/IPricingService.sol +40 -0
  439. package/contracts/product/IProductComponent.sol +62 -0
  440. package/contracts/product/IRiskService.sol +33 -0
  441. package/contracts/product/PolicyService.sol +645 -0
  442. package/contracts/product/PolicyServiceLib.sol +139 -0
  443. package/contracts/product/PolicyServiceManager.sol +39 -0
  444. package/contracts/product/PricingService.sol +306 -0
  445. package/contracts/product/PricingServiceManager.sol +39 -0
  446. package/contracts/product/Product.sol +472 -0
  447. package/contracts/product/RiskService.sol +157 -0
  448. package/contracts/product/RiskServiceManager.sol +39 -0
  449. package/contracts/registry/ChainNft.sol +79 -40
  450. package/contracts/registry/IRegistry.sol +103 -29
  451. package/contracts/registry/IRegistryService.sol +34 -40
  452. package/contracts/registry/IRelease.sol +29 -0
  453. package/contracts/registry/ITransferInterceptor.sol +1 -2
  454. package/contracts/registry/Registry.sol +465 -196
  455. package/contracts/registry/RegistryAdmin.sol +188 -0
  456. package/contracts/registry/RegistryAuthorization.sol +284 -0
  457. package/contracts/registry/RegistryService.sol +90 -135
  458. package/contracts/registry/RegistryServiceManager.sol +23 -32
  459. package/contracts/registry/ReleaseAdmin.sol +195 -0
  460. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  461. package/contracts/registry/ReleaseRegistry.sol +520 -0
  462. package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
  463. package/contracts/registry/TokenRegistry.sol +263 -65
  464. package/contracts/shared/Component.sol +210 -0
  465. package/contracts/shared/ComponentService.sol +678 -0
  466. package/contracts/shared/ComponentServiceManager.sol +38 -0
  467. package/contracts/shared/ContractLib.sol +311 -0
  468. package/contracts/shared/IComponent.sol +58 -0
  469. package/contracts/shared/IComponentService.sol +110 -0
  470. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  471. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  472. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  473. package/contracts/shared/INftOwnable.sol +4 -2
  474. package/contracts/shared/IPolicyHolder.sol +23 -14
  475. package/contracts/shared/IRegisterable.sol +22 -1
  476. package/contracts/shared/IRegistryLinked.sol +0 -1
  477. package/contracts/shared/IService.sol +12 -5
  478. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  479. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  480. package/contracts/shared/KeyValueStore.sol +131 -0
  481. package/contracts/shared/Lifecycle.sol +88 -0
  482. package/contracts/shared/NftIdSet.sol +65 -0
  483. package/contracts/shared/NftOwnable.sol +34 -27
  484. package/contracts/shared/PolicyHolder.sol +23 -41
  485. package/contracts/shared/Registerable.sol +52 -20
  486. package/contracts/shared/RegistryLinked.sol +9 -19
  487. package/contracts/shared/Service.sol +36 -41
  488. package/contracts/shared/TokenHandler.sol +322 -13
  489. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  490. package/contracts/staking/IStaking.sol +195 -0
  491. package/contracts/staking/IStakingService.sol +170 -0
  492. package/contracts/staking/Staking.sol +605 -0
  493. package/contracts/staking/StakingLib.sol +281 -0
  494. package/contracts/staking/StakingLifecycle.sol +23 -0
  495. package/contracts/staking/StakingManager.sol +52 -0
  496. package/contracts/staking/StakingReader.sol +199 -0
  497. package/contracts/staking/StakingService.sol +468 -0
  498. package/contracts/staking/StakingServiceManager.sol +45 -0
  499. package/contracts/staking/StakingStore.sol +606 -0
  500. package/contracts/staking/TargetManagerLib.sol +211 -0
  501. package/contracts/{types → type}/AddressSet.sol +1 -1
  502. package/contracts/type/Amount.sol +150 -0
  503. package/contracts/{types → type}/Blocknumber.sol +26 -3
  504. package/contracts/{types → type}/ClaimId.sol +31 -3
  505. package/contracts/{types → type}/Fee.sol +28 -26
  506. package/contracts/{types → type}/Key32.sol +2 -2
  507. package/contracts/type/Key32Set.sol +62 -0
  508. package/contracts/{types → type}/NftId.sol +21 -16
  509. package/contracts/{types → type}/NftIdSet.sol +2 -2
  510. package/contracts/type/ObjectType.sol +307 -0
  511. package/contracts/type/PayoutId.sol +82 -0
  512. package/contracts/{types → type}/Referral.sol +2 -1
  513. package/contracts/type/RequestId.sol +75 -0
  514. package/contracts/type/RiskId.sol +75 -0
  515. package/contracts/type/RoleId.sol +180 -0
  516. package/contracts/type/Seconds.sol +105 -0
  517. package/contracts/type/Selector.sol +107 -0
  518. package/contracts/{types → type}/StateId.sol +47 -4
  519. package/contracts/type/String.sol +65 -0
  520. package/contracts/{types → type}/Timestamp.sol +20 -6
  521. package/contracts/type/UFixed.sol +262 -0
  522. package/contracts/{types → type}/Version.sol +58 -7
  523. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  524. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  525. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
  526. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  527. package/package.json +12 -8
  528. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  529. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  530. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  535. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  536. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  537. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  538. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  540. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  541. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  543. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  544. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
  545. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  546. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  547. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  550. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  552. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  554. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  556. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  559. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -860
  561. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -641
  563. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1263
  565. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  567. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -849
  569. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  571. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1539
  573. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -769
  575. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -475
  579. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -450
  585. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1124
  587. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  589. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1269
  591. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  593. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +0 -988
  595. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +0 -689
  597. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -872
  599. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  600. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  601. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  602. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  603. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  604. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  605. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  607. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  608. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  609. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  610. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  611. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  612. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  613. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  614. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  617. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  619. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  621. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  623. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  625. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  626. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  627. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  628. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  629. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  630. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  631. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  632. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  633. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  635. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  637. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  639. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  641. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  643. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  645. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  646. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  647. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  649. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  650. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  651. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  653. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  655. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  657. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  659. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  661. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  663. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  665. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  667. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  669. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  671. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  673. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  675. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  677. package/contracts/components/Component.sol +0 -253
  678. package/contracts/components/Distribution.sol +0 -280
  679. package/contracts/components/IComponent.sol +0 -76
  680. package/contracts/components/IDistributionComponent.sol +0 -71
  681. package/contracts/components/IPoolComponent.sol +0 -113
  682. package/contracts/components/IProductComponent.sol +0 -40
  683. package/contracts/components/Pool.sol +0 -303
  684. package/contracts/components/Product.sol +0 -296
  685. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  686. package/contracts/instance/BundleManager.sol +0 -127
  687. package/contracts/instance/Cloneable.sol +0 -51
  688. package/contracts/instance/InstanceAccessManager.sol +0 -540
  689. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -299
  690. package/contracts/instance/ObjectManager.sol +0 -82
  691. package/contracts/instance/base/ComponentService.sol +0 -147
  692. package/contracts/instance/base/KeyValueStore.sol +0 -180
  693. package/contracts/instance/base/Lifecycle.sol +0 -109
  694. package/contracts/instance/module/IAccess.sol +0 -54
  695. package/contracts/instance/module/ISetup.sol +0 -33
  696. package/contracts/instance/module/ITreasury.sol +0 -23
  697. package/contracts/instance/service/ApplicationService.sol +0 -183
  698. package/contracts/instance/service/BundleService.sol +0 -431
  699. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  700. package/contracts/instance/service/ClaimService.sol +0 -145
  701. package/contracts/instance/service/DistributionService.sol +0 -346
  702. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  703. package/contracts/instance/service/IClaimService.sol +0 -61
  704. package/contracts/instance/service/IDistributionService.sol +0 -85
  705. package/contracts/instance/service/IPolicyService.sol +0 -72
  706. package/contracts/instance/service/IPoolService.sol +0 -99
  707. package/contracts/instance/service/IPricingService.sol +0 -36
  708. package/contracts/instance/service/IProductService.sol +0 -40
  709. package/contracts/instance/service/PolicyService.sol +0 -366
  710. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  711. package/contracts/instance/service/PoolService.sol +0 -303
  712. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  713. package/contracts/instance/service/PricingService.sol +0 -275
  714. package/contracts/instance/service/PricingServiceManager.sol +0 -51
  715. package/contracts/instance/service/ProductService.sol +0 -210
  716. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  717. package/contracts/registry/RegistryAccessManager.sol +0 -216
  718. package/contracts/registry/ReleaseManager.sol +0 -324
  719. package/contracts/shared/ContractDeployerLib.sol +0 -72
  720. package/contracts/test/TestFee.sol +0 -25
  721. package/contracts/test/TestRegisterable.sol +0 -18
  722. package/contracts/test/TestRoleId.sol +0 -14
  723. package/contracts/test/TestService.sol +0 -25
  724. package/contracts/test/TestToken.sol +0 -26
  725. package/contracts/test/TestVersion.sol +0 -44
  726. package/contracts/test/TestVersionable.sol +0 -17
  727. package/contracts/types/Amount.sol +0 -60
  728. package/contracts/types/ChainId.sol +0 -38
  729. package/contracts/types/NumberId.sol +0 -52
  730. package/contracts/types/ObjectType.sol +0 -161
  731. package/contracts/types/PayoutId.sol +0 -54
  732. package/contracts/types/RiskId.sol +0 -43
  733. package/contracts/types/RoleId.sol +0 -97
  734. package/contracts/types/Seconds.sol +0 -54
  735. package/contracts/types/UFixed.sol +0 -326
  736. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,394 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccountingService} from "../accounting/IAccountingService.sol";
5
+ import {IBundle} from "../instance/module/IBundle.sol";
6
+ import {IBundleService} from "./IBundleService.sol";
7
+ import {IComponentService} from "../shared/IComponentService.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryService} from "../registry/IRegistryService.sol";
10
+ import {IInstance} from "../instance/IInstance.sol";
11
+ import {InstanceStore} from "../instance/InstanceStore.sol";
12
+
13
+ import {Amount, AmountLib} from "../type/Amount.sol";
14
+ import {BundleSet} from "../instance/BundleSet.sol";
15
+ import {Fee} from "../type/Fee.sol";
16
+ import {InstanceReader} from "../instance/InstanceReader.sol";
17
+ import {NftId, NftIdLib} from "../type/NftId.sol";
18
+ import {ObjectType, ACCOUNTING, COMPONENT, POOL, BUNDLE, POLICY, REGISTRY} from "../type/ObjectType.sol";
19
+ import {PoolLib} from "./PoolLib.sol";
20
+ import {Seconds} from "../type/Seconds.sol";
21
+ import {Service} from "../shared/Service.sol";
22
+ import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
23
+ import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
24
+
25
+
26
+ contract BundleService is
27
+ Service,
28
+ IBundleService
29
+ {
30
+
31
+ string public constant NAME = "BundleService";
32
+
33
+ address private _registryAddress;
34
+ IRegistryService private _registryService;
35
+ IAccountingService private _accountingService;
36
+ IComponentService private _componentService;
37
+
38
+ function _initialize(
39
+ address owner,
40
+ bytes memory data
41
+ )
42
+ internal
43
+ virtual override
44
+ initializer()
45
+ {
46
+ (
47
+ address authority,
48
+ address registry
49
+ ) = abi.decode(data, (address, address));
50
+
51
+ __Service_init(authority, registry, owner);
52
+
53
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
54
+ _accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
55
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
56
+
57
+ _registerInterface(type(IBundleService).interfaceId);
58
+ }
59
+
60
+
61
+ function setFee(
62
+ NftId bundleNftId,
63
+ Fee memory fee
64
+ )
65
+ external
66
+ virtual
67
+ restricted()
68
+ {
69
+ _checkNftType(bundleNftId, BUNDLE());
70
+
71
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
72
+ InstanceReader instanceReader = instance.getInstanceReader();
73
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
74
+ if(bundleInfo.poolNftId.eqz()) {
75
+ revert ErrorBundleServiceBundleUnknown(bundleNftId);
76
+ }
77
+
78
+ if(bundleInfo.poolNftId != poolNftId) {
79
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
80
+ }
81
+
82
+ bundleInfo.fee = fee;
83
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
84
+ }
85
+
86
+
87
+ function create(
88
+ address owner,
89
+ Fee memory bundleFee,
90
+ Seconds lifetime,
91
+ bytes calldata filter
92
+ )
93
+ external
94
+ virtual
95
+ restricted()
96
+ returns(NftId bundleNftId)
97
+ {
98
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
99
+
100
+ // register bundle with registry
101
+ bundleNftId = _registryService.registerBundle(
102
+ IRegistry.ObjectInfo(
103
+ NftIdLib.zero(),
104
+ poolNftId,
105
+ BUNDLE(),
106
+ false, // intercepting property for bundles is defined on pool
107
+ address(0),
108
+ owner,
109
+ "" // bundle data to be stored in registry
110
+ )
111
+ );
112
+
113
+ // create bundle info in instance
114
+ InstanceStore instanceStore = instance.getInstanceStore();
115
+ instanceStore.createBundle(
116
+ bundleNftId,
117
+ IBundle.BundleInfo({
118
+ poolNftId: poolNftId,
119
+ fee: bundleFee,
120
+ filter: filter,
121
+ activatedAt: TimestampLib.blockTimestamp(),
122
+ expiredAt: TimestampLib.blockTimestamp().addSeconds(lifetime),
123
+ closedAt: zeroTimestamp()
124
+ })
125
+ );
126
+
127
+ // put bundle under bundle managemet
128
+ BundleSet bundleManager = instance.getBundleSet();
129
+ bundleManager.add(bundleNftId);
130
+
131
+ emit LogBundleServiceBundleCreated(bundleNftId, poolNftId);
132
+ }
133
+
134
+
135
+ // the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
136
+ function lockCollateral(
137
+ IInstance instance,
138
+ NftId policyNftId,
139
+ NftId bundleNftId,
140
+ Amount collateralAmount // required local amount to collateralize policy
141
+ )
142
+ external
143
+ virtual
144
+ restricted()
145
+ {
146
+ // checks
147
+ _checkNftType(policyNftId, POLICY());
148
+ _checkNftType(bundleNftId, BUNDLE());
149
+
150
+ InstanceReader instanceReader = instance.getInstanceReader();
151
+
152
+ {
153
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
154
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
155
+
156
+ // ensure bundle is active and not yet expired
157
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
158
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
159
+ }
160
+ }
161
+
162
+ InstanceStore instanceStore = instance.getInstanceStore();
163
+
164
+ {
165
+ // ensure bundle capacity is sufficent to collateralize policy
166
+ (
167
+ Amount balanceAmount,
168
+ Amount lockedAmount,
169
+ Amount feeAmount
170
+ ) = instanceStore.getAmounts(bundleNftId);
171
+
172
+ Amount capacity = balanceAmount - (lockedAmount + feeAmount);
173
+ if(capacity < collateralAmount) {
174
+ revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
175
+ }
176
+ }
177
+
178
+ // effects
179
+ // updated locked amount
180
+ instanceStore.increaseLocked(bundleNftId, collateralAmount);
181
+ }
182
+
183
+
184
+ function lock(NftId bundleNftId)
185
+ external
186
+ virtual
187
+ restricted()
188
+ {
189
+ // checks
190
+ _checkNftType(bundleNftId, BUNDLE());
191
+
192
+ (, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
193
+
194
+ // udpate bundle state
195
+ instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
196
+
197
+ // effects
198
+ // update set of active bundles
199
+ BundleSet bundleManager = instance.getBundleSet();
200
+ bundleManager.lock(bundleNftId);
201
+
202
+ emit LogBundleServiceBundleLocked(bundleNftId);
203
+ }
204
+
205
+
206
+ function unlock(NftId bundleNftId)
207
+ external
208
+ virtual
209
+ restricted()
210
+ {
211
+ // checks
212
+ _checkNftType(bundleNftId, BUNDLE());
213
+
214
+ (, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
215
+
216
+ // effects
217
+ // udpate bundle state
218
+ instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
219
+
220
+ // update set of active bundles
221
+ BundleSet bundleManager = instance.getBundleSet();
222
+ bundleManager.unlock(bundleNftId);
223
+
224
+ emit LogBundleServiceBundleActivated(bundleNftId);
225
+ }
226
+
227
+
228
+ function close(
229
+ IInstance instance,
230
+ NftId bundleNftId
231
+ )
232
+ external
233
+ virtual
234
+ restricted()
235
+ returns (Amount unstakedAmount, Amount feeAmount)
236
+ {
237
+ // checks
238
+ _checkNftType(bundleNftId, BUNDLE());
239
+
240
+ InstanceReader instanceReader = instance.getInstanceReader();
241
+
242
+ // ensure no open policies attached to bundle
243
+ BundleSet bundleManager = instance.getBundleSet();
244
+ uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
245
+ if(openPolicies > 0) {
246
+ revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
247
+ }
248
+
249
+ // effects
250
+ {
251
+ // update bundle state
252
+ InstanceStore instanceStore = instance.getInstanceStore();
253
+ instanceStore.updateBundleState(bundleNftId, CLOSED());
254
+ bundleManager.lock(bundleNftId);
255
+
256
+ // decrease bundle counters
257
+ Amount balanceAmountWithFees = instanceReader.getBalanceAmount(bundleNftId);
258
+ feeAmount = instanceReader.getFeeAmount(bundleNftId);
259
+ unstakedAmount = balanceAmountWithFees - feeAmount;
260
+ _accountingService.decreaseBundleBalance(instanceStore, bundleNftId, unstakedAmount, feeAmount);
261
+ }
262
+ }
263
+
264
+ /// @inheritdoc IBundleService
265
+ function stake(
266
+ InstanceReader instanceReader,
267
+ InstanceStore instanceStore,
268
+ NftId bundleNftId,
269
+ Amount amount
270
+ )
271
+ external
272
+ virtual
273
+ restricted()
274
+ {
275
+ // checks
276
+ _checkNftType(bundleNftId, BUNDLE());
277
+
278
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
279
+ StateId bundleState = instanceReader.getBundleState(bundleNftId);
280
+
281
+ if( (bundleState != ACTIVE() && bundleState != PAUSED()) // locked bundles can be staked
282
+ || bundleInfo.expiredAt < TimestampLib.blockTimestamp()
283
+ || bundleInfo.closedAt.gtz()) {
284
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
285
+ }
286
+
287
+ // effects
288
+ _accountingService.increaseBundleBalance(
289
+ instanceStore,
290
+ bundleNftId,
291
+ amount,
292
+ AmountLib.zero());
293
+ }
294
+
295
+ /// @inheritdoc IBundleService
296
+ function unstake(
297
+ InstanceStore instanceStore,
298
+ NftId bundleNftId,
299
+ Amount amount
300
+ )
301
+ external
302
+ virtual
303
+ restricted()
304
+ returns (Amount unstakedAmount)
305
+ {
306
+ // checks
307
+ _checkNftType(bundleNftId, BUNDLE());
308
+
309
+ (
310
+ Amount balanceAmount,
311
+ Amount lockedAmount,
312
+ Amount feeAmount
313
+ ) = instanceStore.getAmounts(bundleNftId);
314
+
315
+ unstakedAmount = amount;
316
+ Amount availableAmount = balanceAmount - (lockedAmount + feeAmount);
317
+
318
+ // if amount is max, then unstake all available
319
+ if (amount.gte(AmountLib.max())) {
320
+ unstakedAmount = availableAmount;
321
+ }
322
+
323
+ // ensure unstaked amount does not exceed available amount
324
+ if (unstakedAmount > availableAmount) {
325
+ revert ErrorBundleServiceUnstakeAmountExceedsLimit(amount, availableAmount);
326
+ }
327
+
328
+ // effects
329
+ _accountingService.decreaseBundleBalance(
330
+ instanceStore,
331
+ bundleNftId,
332
+ unstakedAmount,
333
+ AmountLib.zero());
334
+ }
335
+
336
+ /// @inheritdoc IBundleService
337
+ function extend(NftId bundleNftId, Seconds lifetimeExtension)
338
+ external
339
+ virtual
340
+ restricted()
341
+ returns (Timestamp extendedExpiredAt)
342
+ {
343
+ // checks
344
+ _checkNftType(bundleNftId, BUNDLE());
345
+
346
+ (NftId poolNftId, IInstance instance) = PoolLib.getAndVerifyActivePool(getRegistry(), msg.sender);
347
+ IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
348
+ StateId bundleState = instance.getInstanceReader().getBundleState(bundleNftId);
349
+
350
+ // ensure bundle belongs to the pool
351
+ if (bundleInfo.poolNftId != poolNftId) {
352
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
353
+ }
354
+
355
+ // ensure bundle is active and not yet expired
356
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
357
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
358
+ }
359
+
360
+ if (lifetimeExtension.eqz()) {
361
+ revert ErrorBundleServiceExtensionLifetimeIsZero();
362
+ }
363
+
364
+ // effects
365
+ bundleInfo.expiredAt = bundleInfo.expiredAt.addSeconds(lifetimeExtension);
366
+ extendedExpiredAt = bundleInfo.expiredAt;
367
+
368
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
369
+
370
+ emit LogBundleServiceBundleExtended(bundleNftId, lifetimeExtension, extendedExpiredAt);
371
+ }
372
+
373
+
374
+ function releaseCollateral(
375
+ InstanceStore instanceStore,
376
+ NftId policyNftId,
377
+ NftId bundleNftId,
378
+ Amount collateralAmount
379
+ )
380
+ external
381
+ virtual
382
+ restricted()
383
+ {
384
+ _checkNftType(policyNftId, POLICY());
385
+ _checkNftType(bundleNftId, BUNDLE());
386
+
387
+ instanceStore.decreaseLocked(bundleNftId, collateralAmount);
388
+ }
389
+
390
+
391
+ function _getDomain() internal pure override returns(ObjectType) {
392
+ return BUNDLE();
393
+ }
394
+ }
@@ -0,0 +1,39 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
+ import {BundleService} from "./BundleService.sol";
7
+
8
+ contract BundleServiceManager is ProxyManager {
9
+
10
+ BundleService private _bundleService;
11
+
12
+ /// @dev initializes proxy manager with pool service implementation
13
+ constructor(
14
+ address authority,
15
+ address registry,
16
+ bytes32 salt
17
+ )
18
+ {
19
+ BundleService svc = new BundleService{salt: salt}();
20
+ bytes memory data = abi.encode(authority, registry);
21
+ IVersionable versionable = initialize(
22
+ registry,
23
+ address(svc),
24
+ data,
25
+ salt);
26
+
27
+ _bundleService = BundleService(address(versionable));
28
+ }
29
+
30
+ //--- view functions ----------------------------------------------------//
31
+ function getBundleService()
32
+ external
33
+ view
34
+ returns (BundleService)
35
+ {
36
+ return _bundleService;
37
+ }
38
+
39
+ }
@@ -1,40 +1,67 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Amount} from "../../types/Amount.sol";
5
- import {NftId} from "../../types/NftId.sol";
6
- import {Fee} from "../../types/Fee.sol";
7
- import {IService} from "../../shared/IService.sol";
8
- import {IBundle} from "../module/IBundle.sol";
9
- import {IInstance} from "../../instance/IInstance.sol";
10
- import {Seconds} from "../../types/Seconds.sol";
11
- import {StateId} from "../../types/StateId.sol";
12
- import {Timestamp} from "../../types/Timestamp.sol";
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IService} from "../shared/IService.sol";
5
+ import {IInstance} from "../instance/IInstance.sol";
6
+
7
+ import {Amount} from "../type/Amount.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {Fee} from "../type/Fee.sol";
10
+ import {InstanceReader} from "../instance/InstanceReader.sol";
11
+ import {InstanceStore} from "../instance/InstanceStore.sol";
12
+ import {Seconds} from "../type/Seconds.sol";
13
+ import {StateId} from "../type/StateId.sol";
14
+ import {Timestamp} from "../type/Timestamp.sol";
13
15
 
14
16
  interface IBundleService is IService {
15
17
 
18
+ event LogBundleServiceBundleCreated(NftId bundleNftId, NftId poolNftId);
16
19
  event LogBundleServiceBundleActivated(NftId bundleNftId);
17
20
  event LogBundleServiceBundleLocked(NftId bundleNftId);
18
21
 
19
- error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, uint256 amount);
22
+ error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, Amount amount);
20
23
  error ErrorBundleServiceBundleNotOpen(NftId bundleNftId, StateId state, Timestamp expiredAt);
21
- error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, uint capacityAmount, uint collateralAmount);
24
+ error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, Amount capacityAmount, Amount collateralAmount);
22
25
  error ErrorBundleServiceBundleWithOpenPolicies(NftId bundleNftId, uint256 openPoliciesCount);
23
26
 
24
- /// @dev create a new bundle for the specified attributes
25
- /// may only be called by pool service
27
+ error ErrorBundleServiceBundleUnknown(NftId bundleNftId);
28
+ error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
29
+
30
+ error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
31
+
32
+ error ErrorBundleServiceUnstakeAmountExceedsLimit(Amount amount, Amount limit);
33
+
34
+ error ErrorBundleServiceExtensionLifetimeIsZero();
35
+
36
+ event LogBundleServiceBundleExtended(NftId bundleNftId, Seconds lifetimeExtension, Timestamp extendedExpiredAt);
37
+
38
+ /// @dev Create a new bundle for the specified attributes.
26
39
  function create(
27
- IInstance instance, // instance relevant for bundle
28
- NftId poolNftId, // the pool the bundle will be linked to
29
40
  address owner, // initial bundle owner
30
41
  Fee memory fee, // fees deducted from premium that go to bundle owner
31
- Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
32
42
  Seconds lifetime, // initial duration for which new policies are covered
33
43
  bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
34
44
  )
35
45
  external
36
46
  returns(NftId bundleNftId); // the nft id of the newly created bundle
37
47
 
48
+
49
+ /// @dev increase bundle stakes by the specified amount. bundle must not be expired or closed
50
+ /// may only be called by the pool service
51
+ function stake(
52
+ InstanceReader instanceReader,
53
+ InstanceStore instanceStore,
54
+ NftId bundleNftId,
55
+ Amount amount
56
+ ) external;
57
+
58
+ /// @dev decrease bundle stakes by the specified amount
59
+ /// may only be called by the pool service
60
+ function unstake(InstanceStore instanceStore, NftId bundleNftId, Amount amount) external returns (Amount unstakedAmount);
61
+
62
+ /// @dev extend the lifetime of the bundle by the specified time in seconds
63
+ function extend(NftId bundleNftId, Seconds lifetimeExtension) external returns (Timestamp extendedExpiredAt);
64
+
38
65
  /// @dev locks the specified bundle, locked bundles are not available to collateralize new policies
39
66
  /// only active bundles may be locked
40
67
  /// may only be called by registered and unlocked pool components
@@ -49,10 +76,12 @@ interface IBundleService is IService {
49
76
  /// only open bundles (active or locked) may be closed
50
77
  /// to close a bundle it may not have any non-closed polices attached to it
51
78
  /// may only be called by registered and unlocked pool components
79
+ /// @return balanceAmount the unstaked amount that was remaining in the bundle
80
+ /// @return feeAmount the fee amount that was remaining for the bundle
52
81
  function close(
53
82
  IInstance instance,
54
83
  NftId bundleNftId
55
- ) external;
84
+ ) external returns (Amount balanceAmount, Amount feeAmount);
56
85
 
57
86
  /// @dev set bundle fee to provided value
58
87
  /// may only be called by registered and unlocked pool components
@@ -68,26 +97,19 @@ interface IBundleService is IService {
68
97
  /// the premium (minus bundle fee) is added to the bundle capital
69
98
  /// may only be called by pool service
70
99
  function lockCollateral(
71
- IInstance instanceNftId,
100
+ IInstance instance,
72
101
  NftId policyNftId,
73
102
  NftId bundleNftId,
74
- uint256 collateralAmount,
75
- uint256 premium // premium amount after pool fee
103
+ Amount collateralAmount
76
104
  ) external;
77
105
 
78
106
 
79
107
  /// @dev releases the specified collateral in the bundle
80
108
  /// may only be called by pool service
81
109
  function releaseCollateral(
82
- IInstance instance,
110
+ InstanceStore instanceStore,
83
111
  NftId policyNftId,
84
112
  NftId bundleNftId,
85
- uint256 collateralAmount
113
+ Amount collateralAmount
86
114
  ) external;
87
-
88
- function increaseBalance(IInstance instance, NftId bundleNftId, uint256 amount) external;
89
-
90
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
91
-
92
- // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
93
115
  }
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {ClaimId} from "../type/ClaimId.sol";
6
+ import {Fee} from "../type/Fee.sol";
7
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
+ import {IComponents} from "../instance/module/IComponents.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
12
+ import {UFixed} from "../type/UFixed.sol";
13
+
14
+ /// @dev pool components hold and manage the collateral to cover active policies
15
+ /// pools come in different flavors
16
+ interface IPoolComponent is IInstanceLinkedComponent {
17
+
18
+ error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
19
+ error ErrorPoolNotPoolService(address caller);
20
+ error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
21
+
22
+ event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
23
+
24
+ /// @dev This is a callback function that is called by the product service when underwriting a policy.
25
+ /// The pool has the option to check the details and object to underwriting by reverting.
26
+ /// The function is only called for "active" pools that ask to be involved/notified.
27
+ /// The default implementation is empty.
28
+ function verifyApplication(
29
+ NftId applicationNftId,
30
+ NftId bundleNftId,
31
+ Amount collateralizationAmount
32
+ ) external;
33
+
34
+ /// @dev Returns true iff the application matches with the bundle.
35
+ /// This is a callback function that is only called if a pool declares itself as a verifying pool
36
+ /// The default implementation returns true.
37
+ function applicationMatchesBundle(
38
+ NftId applicationNftId,
39
+ bytes memory applicationData,
40
+ NftId bundleNftId,
41
+ bytes memory bundleFilter,
42
+ Amount collateralizationAmount
43
+ )
44
+ external
45
+ view
46
+ returns (bool isMatching);
47
+
48
+
49
+ /// @dev This is a callback function that is called by the claim service when a claim is confirmed.
50
+ /// The pool has the option to implement custom behavirous such as triggering a reinsurance claim or blocking the claim confirmaation.
51
+ /// The default implementation is empty.
52
+ function processConfirmedClaim(
53
+ NftId policyNftId,
54
+ ClaimId claimId,
55
+ Amount amount
56
+ ) external;
57
+
58
+
59
+ /// @dev Returns initial pool specific infos for this pool
60
+ function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
61
+
62
+ }