@etherisc/gif-next 0.0.2-77c72ae-504 → 0.0.2-782a7d8-939

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 (552) hide show
  1. package/README.md +8 -84
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +310 -283
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +233 -201
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +315 -2127
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +229 -77
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +456 -2872
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +642 -327
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +295 -277
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +119 -78
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +286 -218
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +480 -213
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +527 -284
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +134 -97
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +272 -137
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IPricingService.sol/IPricingService.json} +249 -193
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +408 -219
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +85 -71
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/{components → product}/Product.sol/Product.json +433 -282
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +188 -19
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +305 -74
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +430 -34
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +413 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +344 -95
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -54
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +834 -89
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +209 -166
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +96 -111
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +222 -104
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +101 -26
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  181. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  183. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  185. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  187. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  189. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  191. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  193. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  195. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +24 -23
  197. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  199. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  200. package/artifacts/contracts/shared/Service.sol/Service.json +109 -29
  201. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  203. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  205. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  206. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  207. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  208. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  210. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  212. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  213. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  214. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  216. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +597 -0
  218. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  220. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  222. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  224. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  225. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  226. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  227. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  228. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  230. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  232. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  234. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  235. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  236. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  238. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  240. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  242. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  244. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  246. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  248. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  250. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  252. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  254. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  256. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  258. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  260. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  262. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  264. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  266. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  270. package/contracts/{components → distribution}/Distribution.sol +53 -100
  271. package/contracts/distribution/DistributionService.sol +298 -0
  272. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  273. package/contracts/distribution/IDistributionComponent.sol +66 -0
  274. package/contracts/distribution/IDistributionService.sol +81 -0
  275. package/contracts/instance/BundleManager.sol +15 -14
  276. package/contracts/instance/IInstance.sol +56 -66
  277. package/contracts/instance/IInstanceService.sol +40 -18
  278. package/contracts/instance/Instance.sol +139 -194
  279. package/contracts/instance/InstanceAdmin.sol +331 -0
  280. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  281. package/contracts/instance/InstanceReader.sol +159 -62
  282. package/contracts/instance/InstanceService.sol +226 -340
  283. package/contracts/instance/InstanceServiceManager.sol +11 -21
  284. package/contracts/instance/InstanceStore.sol +281 -0
  285. package/contracts/instance/base/BalanceStore.sol +118 -0
  286. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  287. package/contracts/instance/base/ObjectCounter.sol +21 -0
  288. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
  289. package/contracts/instance/module/IAccess.sol +19 -20
  290. package/contracts/instance/module/IBundle.sol +8 -8
  291. package/contracts/instance/module/{ISetup.sol → IComponents.sol} +24 -19
  292. package/contracts/instance/module/IDistribution.sol +7 -4
  293. package/contracts/instance/module/IPolicy.sol +53 -16
  294. package/contracts/instance/module/IRisk.sol +1 -1
  295. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  296. package/contracts/oracle/IOracle.sol +20 -0
  297. package/contracts/oracle/IOracleComponent.sol +32 -0
  298. package/contracts/oracle/IOracleService.sol +65 -0
  299. package/contracts/oracle/Oracle.sol +145 -0
  300. package/contracts/oracle/OracleService.sol +277 -0
  301. package/contracts/oracle/OracleServiceManager.sol +42 -0
  302. package/contracts/pool/BundleService.sol +296 -0
  303. package/contracts/pool/BundleServiceManager.sol +42 -0
  304. package/contracts/pool/IBundleService.sol +106 -0
  305. package/contracts/pool/IPoolComponent.sol +112 -0
  306. package/contracts/pool/IPoolService.sol +150 -0
  307. package/contracts/pool/Pool.sol +299 -0
  308. package/contracts/pool/PoolService.sol +453 -0
  309. package/contracts/pool/PoolServiceManager.sol +42 -0
  310. package/contracts/product/ApplicationService.sol +254 -0
  311. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  312. package/contracts/product/ClaimService.sol +442 -0
  313. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  314. package/contracts/{instance/service → product}/IApplicationService.sol +16 -36
  315. package/contracts/product/IClaimService.sol +99 -0
  316. package/contracts/{instance/service → product}/IPolicyService.sol +37 -48
  317. package/contracts/product/IPricingService.sol +39 -0
  318. package/contracts/product/IProductComponent.sol +42 -0
  319. package/contracts/product/IProductService.sol +33 -0
  320. package/contracts/product/PolicyService.sol +475 -0
  321. package/contracts/product/PolicyServiceManager.sol +42 -0
  322. package/contracts/product/PricingService.sol +301 -0
  323. package/contracts/product/PricingServiceManager.sol +42 -0
  324. package/contracts/product/Product.sol +377 -0
  325. package/contracts/product/ProductService.sol +124 -0
  326. package/contracts/product/ProductServiceManager.sol +42 -0
  327. package/contracts/registry/ChainNft.sol +16 -1
  328. package/contracts/registry/IRegistry.sol +46 -21
  329. package/contracts/registry/IRegistryService.sol +39 -37
  330. package/contracts/registry/ITransferInterceptor.sol +1 -0
  331. package/contracts/registry/Registry.sol +209 -97
  332. package/contracts/registry/RegistryAdmin.sol +237 -0
  333. package/contracts/registry/RegistryService.sol +69 -86
  334. package/contracts/registry/RegistryServiceManager.sol +21 -25
  335. package/contracts/registry/ReleaseManager.sol +459 -181
  336. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  337. package/contracts/registry/TokenRegistry.sol +261 -62
  338. package/contracts/shared/AccessManagerCustom.sol +736 -0
  339. package/contracts/shared/AccessManagerExtended.sol +470 -0
  340. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  341. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  342. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  343. package/contracts/shared/Component.sol +281 -0
  344. package/contracts/shared/ComponentService.sol +618 -0
  345. package/contracts/shared/ComponentServiceManager.sol +35 -0
  346. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  347. package/contracts/shared/ERC165.sol +1 -1
  348. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  349. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  350. package/contracts/shared/IComponent.sol +70 -0
  351. package/contracts/shared/IComponentService.sol +102 -0
  352. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  353. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  354. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  355. package/contracts/shared/INftOwnable.sol +2 -2
  356. package/contracts/shared/IPolicyHolder.sol +29 -10
  357. package/contracts/shared/IRegistryLinked.sol +0 -1
  358. package/contracts/shared/IService.sol +7 -5
  359. package/contracts/shared/IVersionable.sol +1 -1
  360. package/contracts/shared/InitializableCustom.sol +177 -0
  361. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  362. package/contracts/shared/KeyValueStore.sol +127 -0
  363. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  364. package/contracts/shared/NftIdSetManager.sol +65 -0
  365. package/contracts/shared/NftOwnable.sol +3 -16
  366. package/contracts/shared/PolicyHolder.sol +40 -19
  367. package/contracts/shared/ProxyManager.sol +34 -4
  368. package/contracts/shared/Registerable.sol +15 -14
  369. package/contracts/shared/RegistryLinked.sol +0 -5
  370. package/contracts/shared/Service.sol +29 -10
  371. package/contracts/shared/TokenHandler.sol +37 -6
  372. package/contracts/shared/Versionable.sol +1 -1
  373. package/contracts/staking/IStaking.sol +168 -0
  374. package/contracts/staking/IStakingService.sol +149 -0
  375. package/contracts/staking/StakeManagerLib.sol +179 -0
  376. package/contracts/staking/Staking.sol +551 -0
  377. package/contracts/staking/StakingManager.sol +54 -0
  378. package/contracts/staking/StakingReader.sol +187 -0
  379. package/contracts/staking/StakingService.sol +406 -0
  380. package/contracts/staking/StakingServiceManager.sol +45 -0
  381. package/contracts/staking/StakingStore.sol +572 -0
  382. package/contracts/staking/TargetManagerLib.sol +207 -0
  383. package/contracts/{types → type}/AddressSet.sol +1 -1
  384. package/contracts/type/Amount.sol +128 -0
  385. package/contracts/{types → type}/Blocknumber.sol +21 -3
  386. package/contracts/{types → type}/ClaimId.sol +25 -2
  387. package/contracts/{types → type}/Fee.sol +33 -23
  388. package/contracts/{types → type}/NftId.sol +21 -15
  389. package/contracts/{types → type}/NftIdSet.sol +2 -2
  390. package/contracts/{types → type}/ObjectType.sol +26 -14
  391. package/contracts/{types → type}/PayoutId.sol +33 -5
  392. package/contracts/{types → type}/Referral.sol +5 -1
  393. package/contracts/type/RequestId.sol +75 -0
  394. package/contracts/{types → type}/RiskId.sol +1 -1
  395. package/contracts/{types → type}/RoleId.sol +69 -13
  396. package/contracts/type/Seconds.sol +81 -0
  397. package/contracts/{types → type}/StateId.sol +34 -4
  398. package/contracts/{types → type}/Timestamp.sol +23 -14
  399. package/contracts/{types → type}/UFixed.sol +1 -0
  400. package/contracts/{types → type}/Version.sol +2 -1
  401. package/package.json +4 -3
  402. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  403. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  404. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  405. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  406. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  407. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  408. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  409. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  410. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  411. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  412. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  413. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  414. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  415. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  416. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  417. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  418. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  419. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  420. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  421. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  422. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  423. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  424. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  426. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  428. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  429. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  430. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  431. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  432. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  433. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  434. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  435. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  436. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  437. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  438. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  439. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  440. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  441. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  442. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  443. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  444. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  445. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  446. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  447. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  448. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  449. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  450. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  451. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  452. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  453. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  454. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  455. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  456. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  457. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  458. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  459. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  460. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  461. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  462. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  463. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  464. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  465. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  466. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  467. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  468. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  469. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  470. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  471. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  472. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  473. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  474. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  475. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  476. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  477. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  478. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  479. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  480. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  481. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  482. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  483. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  484. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  485. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  486. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  487. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  488. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  489. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  490. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  491. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  492. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  493. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  494. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  495. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  496. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  497. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  498. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  499. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  500. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  501. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  502. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  503. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  504. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  505. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  507. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  508. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  512. package/contracts/components/Component.sol +0 -241
  513. package/contracts/components/IComponent.sol +0 -54
  514. package/contracts/components/IDistributionComponent.sol +0 -100
  515. package/contracts/components/IPoolComponent.sol +0 -87
  516. package/contracts/components/IProductComponent.sol +0 -39
  517. package/contracts/components/Pool.sol +0 -254
  518. package/contracts/components/Product.sol +0 -285
  519. package/contracts/instance/InstanceAccessManager.sol +0 -297
  520. package/contracts/instance/base/ComponentService.sol +0 -134
  521. package/contracts/instance/base/KeyValueStore.sol +0 -172
  522. package/contracts/instance/module/ITreasury.sol +0 -23
  523. package/contracts/instance/service/ApplicationService.sol +0 -268
  524. package/contracts/instance/service/BundleService.sol +0 -298
  525. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  526. package/contracts/instance/service/ClaimService.sol +0 -151
  527. package/contracts/instance/service/DistributionService.sol +0 -277
  528. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  529. package/contracts/instance/service/IBundleService.sol +0 -54
  530. package/contracts/instance/service/IClaimService.sol +0 -61
  531. package/contracts/instance/service/IDistributionService.sol +0 -65
  532. package/contracts/instance/service/IPoolService.sol +0 -20
  533. package/contracts/instance/service/IProductService.sol +0 -40
  534. package/contracts/instance/service/PolicyService.sol +0 -474
  535. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  536. package/contracts/instance/service/PoolService.sol +0 -109
  537. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  538. package/contracts/instance/service/ProductService.sol +0 -233
  539. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  540. package/contracts/registry/RegistryAccessManager.sol +0 -216
  541. package/contracts/shared/ContractDeployerLib.sol +0 -72
  542. package/contracts/test/TestFee.sol +0 -25
  543. package/contracts/test/TestRegisterable.sol +0 -18
  544. package/contracts/test/TestRoleId.sol +0 -14
  545. package/contracts/test/TestService.sol +0 -25
  546. package/contracts/test/TestVersion.sol +0 -44
  547. package/contracts/test/TestVersionable.sol +0 -17
  548. package/contracts/test/Usdc.sol +0 -26
  549. package/contracts/types/ChainId.sol +0 -38
  550. package/contracts/types/NumberId.sol +0 -52
  551. /package/contracts/{types → type}/DistributorType.sol +0 -0
  552. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,475 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {Product} from "./Product.sol";
6
+ import {IComponents} from "../instance/module/IComponents.sol";
7
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
9
+ import {IPolicy} from "../instance/module/IPolicy.sol";
10
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
11
+ import {IRisk} from "../instance/module/IRisk.sol";
12
+ import {IBundle} from "../instance/module/IBundle.sol";
13
+
14
+ import {TokenHandler} from "../shared/TokenHandler.sol";
15
+
16
+ import {Amount, AmountLib} from "../type/Amount.sol";
17
+ import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
18
+ import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
19
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
20
+ import {ObjectType, APPLICATION, COMPONENT, DISTRIBUTION, PRODUCT, POOL, POLICY, BUNDLE, CLAIM, PRICE} from "../type/ObjectType.sol";
21
+ import {APPLIED, COLLATERALIZED, ACTIVE, KEEP_STATE, CLOSED, DECLINED, CONFIRMED} from "../type/StateId.sol";
22
+ import {NftId, NftIdLib} from "../type/NftId.sol";
23
+ import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
24
+ import {ReferralId} from "../type/Referral.sol";
25
+ import {StateId} from "../type/StateId.sol";
26
+ import {VersionPart} from "../type/Version.sol";
27
+
28
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
29
+ import {IApplicationService} from "./IApplicationService.sol";
30
+ import {IBundleService} from "../pool/IBundleService.sol";
31
+ import {IClaimService} from "./IClaimService.sol";
32
+ import {IComponentService} from "../shared/IComponentService.sol";
33
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
34
+ import {InstanceReader} from "../instance/InstanceReader.sol";
35
+ import {InstanceStore} from "../instance/InstanceStore.sol";
36
+ import {IPolicyService} from "./IPolicyService.sol";
37
+ import {IPoolService} from "../pool/IPoolService.sol";
38
+ import {IPricingService} from "./IPricingService.sol";
39
+ import {IService} from "../shared/IService.sol";
40
+ import {Service} from "../shared/Service.sol";
41
+
42
+ contract PolicyService is
43
+ ComponentVerifyingService,
44
+ IPolicyService
45
+ {
46
+ using NftIdLib for NftId;
47
+ using TimestampLib for Timestamp;
48
+
49
+ IApplicationService internal _applicationService;
50
+ IComponentService internal _componentService;
51
+ IBundleService internal _bundleService;
52
+ IClaimService internal _claimService;
53
+ IDistributionService internal _distributionService;
54
+ IPoolService internal _poolService;
55
+ IPricingService internal _pricingService;
56
+
57
+ event LogProductServiceSender(address sender);
58
+
59
+ function _initialize(
60
+ address owner,
61
+ bytes memory data
62
+ )
63
+ internal
64
+ virtual override
65
+ initializer
66
+ {
67
+ (
68
+ address registryAddress,,
69
+ //address managerAddress
70
+ address authority
71
+ ) = abi.decode(data, (address, address, address));
72
+
73
+ initializeService(registryAddress, authority, owner);
74
+
75
+ VersionPart majorVersion = getVersion().toMajorPart();
76
+ _applicationService = IApplicationService(getRegistry().getServiceAddress(APPLICATION(), majorVersion));
77
+ _bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), majorVersion));
78
+ _componentService = IComponentService(getRegistry().getServiceAddress(COMPONENT(), majorVersion));
79
+ _claimService = IClaimService(getRegistry().getServiceAddress(CLAIM(), majorVersion));
80
+ _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), majorVersion));
81
+ _distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), majorVersion));
82
+ _pricingService = IPricingService(getRegistry().getServiceAddress(PRICE(), majorVersion));
83
+
84
+ registerInterface(type(IPolicyService).interfaceId);
85
+ }
86
+
87
+
88
+ function getDomain() public pure override returns(ObjectType) {
89
+ return POLICY();
90
+ }
91
+
92
+
93
+ function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
94
+ IRegistry.ObjectInfo memory productInfo;
95
+ (, productInfo,) = _getAndVerifyActiveComponent(PRODUCT());
96
+ product = Product(productInfo.objectAddress);
97
+ }
98
+
99
+
100
+ function decline(
101
+ NftId policyNftId
102
+ )
103
+ external
104
+ override
105
+ {
106
+ revert();
107
+ }
108
+
109
+ event LogDebug(uint idx, string message);
110
+
111
+ /// @dev underwites application which includes the locking of the required collateral from the pool.
112
+ function collateralize(
113
+ NftId applicationNftId, // = policyNftId
114
+ bool requirePremiumPayment,
115
+ Timestamp activateAt
116
+ )
117
+ external
118
+ virtual override
119
+ {
120
+ // check caller is registered product
121
+ (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
122
+ InstanceReader instanceReader = instance.getInstanceReader();
123
+
124
+ // check policy is in state applied
125
+ if (instanceReader.getPolicyState(applicationNftId) != APPLIED()) {
126
+ revert ErrorPolicyServicePolicyStateNotApplied(applicationNftId);
127
+ }
128
+
129
+ // check policy matches with calling product
130
+ IPolicy.PolicyInfo memory applicationInfo = instanceReader.getPolicyInfo(applicationNftId);
131
+ if(applicationInfo.productNftId != productNftId) {
132
+ revert ErrorPolicyServicePolicyProductMismatch(
133
+ applicationNftId,
134
+ applicationInfo.productNftId,
135
+ productNftId);
136
+ }
137
+
138
+ StateId newPolicyState = COLLATERALIZED();
139
+
140
+ // actual collateralizaion
141
+ (
142
+ Amount localCollateralAmount,
143
+ Amount totalCollateralAmount
144
+ ) = _poolService.lockCollateral(
145
+ instance,
146
+ address(instanceReader.getComponentInfo(productNftId).token),
147
+ productNftId,
148
+ applicationNftId,
149
+ applicationInfo.bundleNftId,
150
+ applicationInfo.sumInsuredAmount);
151
+
152
+ // optional activation of policy
153
+ if(activateAt > zeroTimestamp()) {
154
+ newPolicyState = ACTIVE();
155
+ applicationInfo.activatedAt = activateAt;
156
+ applicationInfo.expiredAt = activateAt.addSeconds(applicationInfo.lifetime);
157
+ }
158
+
159
+ // optional collection of premium
160
+ if(requirePremiumPayment) {
161
+ Amount premiumPaidAmount = _calculateAndCollectPremium(
162
+ instance,
163
+ applicationNftId,
164
+ applicationInfo);
165
+
166
+ applicationInfo.premiumPaidAmount = premiumPaidAmount;
167
+ }
168
+
169
+ // store updated policy info
170
+ instance.getInstanceStore().updatePolicy(
171
+ applicationNftId,
172
+ applicationInfo,
173
+ newPolicyState);
174
+
175
+ // TODO add calling pool contract if it needs to validate application
176
+
177
+ // TODO: add logging
178
+ }
179
+
180
+
181
+ function collectPremium(
182
+ NftId policyNftId,
183
+ Timestamp activateAt
184
+ )
185
+ external
186
+ virtual
187
+ {
188
+ // check caller is registered product
189
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
190
+ InstanceReader instanceReader = instance.getInstanceReader();
191
+ StateId stateId = instanceReader.getPolicyState(policyNftId);
192
+
193
+ // check policy is in state collateralized or active
194
+ if (!(stateId == COLLATERALIZED() || stateId == ACTIVE())) {
195
+ revert ErrorPolicyServicePolicyStateNotCollateralizedOrApplied(policyNftId);
196
+ }
197
+
198
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
199
+
200
+ // check if premium is already collected
201
+ if (policyInfo.premiumPaidAmount.gtz()) {
202
+ revert ErrorPolicyServicePremiumAlreadyPaid(policyNftId, policyInfo.premiumPaidAmount);
203
+ }
204
+
205
+ policyInfo.premiumPaidAmount = _calculateAndCollectPremium(
206
+ instance,
207
+ policyNftId,
208
+ policyInfo);
209
+
210
+ instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
211
+
212
+ if(activateAt.gtz() && policyInfo.activatedAt.eqz()) {
213
+ activate(policyNftId, activateAt);
214
+ }
215
+
216
+ // TODO: add logging
217
+ }
218
+
219
+ function activate(NftId policyNftId, Timestamp activateAt) public override {
220
+ // check caller is registered product
221
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
222
+ InstanceReader instanceReader = instance.getInstanceReader();
223
+
224
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
225
+
226
+ require(
227
+ policyInfo.activatedAt.eqz(),
228
+ "ERROR:PRS-020:ALREADY_ACTIVATED");
229
+
230
+ policyInfo.activatedAt = activateAt;
231
+ policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
232
+
233
+ instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, ACTIVE());
234
+
235
+ // TODO: add logging
236
+ }
237
+
238
+
239
+ function expire(
240
+ NftId policyNftId
241
+ )
242
+ external
243
+ override
244
+ // solhint-disable-next-line no-empty-blocks
245
+ {
246
+
247
+ }
248
+
249
+ function close(
250
+ NftId policyNftId
251
+ )
252
+ external
253
+ override
254
+ {
255
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
256
+ InstanceReader instanceReader = instance.getInstanceReader();
257
+
258
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
259
+
260
+ if (policyInfo.activatedAt.eqz()) {
261
+ revert ErrorIPolicyServicePolicyNotActivated(policyNftId);
262
+ }
263
+
264
+ StateId state = instanceReader.getPolicyState(policyNftId);
265
+ if (state != ACTIVE()) {
266
+ revert ErrorIPolicyServicePolicyNotActive(policyNftId, state);
267
+ }
268
+
269
+ if (policyInfo.closedAt.gtz()) {
270
+ revert ErrorIPolicyServicePolicyAlreadyClosed(policyNftId);
271
+ }
272
+
273
+ // TODO consider to allow for underpaid premiums (with the effects of reducing max payouts accordingly)
274
+ if (!(policyInfo.premiumAmount == policyInfo.premiumPaidAmount)) {
275
+ revert ErrorPolicyServicePremiumNotFullyPaid(policyNftId, policyInfo.premiumAmount, policyInfo.premiumPaidAmount);
276
+ }
277
+
278
+ if (policyInfo.openClaimsCount > 0) {
279
+ revert ErrorIPolicyServiceOpenClaims(policyNftId, policyInfo.openClaimsCount);
280
+ }
281
+
282
+ policyInfo.closedAt = TimestampLib.blockTimestamp();
283
+
284
+ _poolService.releaseCollateral(
285
+ instance,
286
+ address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
287
+ policyNftId,
288
+ policyInfo);
289
+
290
+ instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, CLOSED());
291
+ }
292
+
293
+
294
+ function _calculateAndCollectPremium(
295
+ IInstance instance,
296
+ NftId applicationNftId,
297
+ IPolicy.PolicyInfo memory applicationInfo
298
+ )
299
+ internal
300
+ virtual
301
+ returns (
302
+ Amount premiumPaidAmount
303
+ )
304
+ {
305
+ NftId productNftId = applicationInfo.productNftId;
306
+
307
+ // calculate premium details
308
+ IPolicy.Premium memory premium = _pricingService.calculatePremium(
309
+ productNftId,
310
+ applicationInfo.riskId,
311
+ applicationInfo.sumInsuredAmount,
312
+ applicationInfo.lifetime,
313
+ applicationInfo.applicationData,
314
+ applicationInfo.bundleNftId,
315
+ applicationInfo.referralId);
316
+
317
+
318
+ // update financials and transfer premium tokens
319
+ premiumPaidAmount = _processAndCollect(
320
+ instance,
321
+ productNftId,
322
+ applicationNftId,
323
+ applicationInfo.premiumAmount,
324
+ applicationInfo.bundleNftId,
325
+ applicationInfo.referralId,
326
+ premium);
327
+ }
328
+
329
+
330
+ function _processAndCollect(
331
+ IInstance instance,
332
+ NftId productNftId,
333
+ NftId policyNftId,
334
+ Amount premiumExpectedAmount,
335
+ NftId bundleNftId,
336
+ ReferralId referralId,
337
+ IPolicy.Premium memory premium
338
+ )
339
+ internal
340
+ virtual
341
+ returns (Amount premiumPaidAmount)
342
+ {
343
+ InstanceReader instanceReader = instance.getInstanceReader();
344
+ TokenHandler tokenHandler = instanceReader.getComponentInfo(productNftId).tokenHandler;
345
+ address policyHolder = getRegistry().ownerOf(policyNftId);
346
+ premiumPaidAmount = AmountLib.toAmount(premium.premiumAmount);
347
+
348
+ _checkPremiumBalanceAndAllowance(
349
+ tokenHandler,
350
+ policyHolder,
351
+ premiumExpectedAmount,
352
+ premiumPaidAmount);
353
+
354
+ _processSaleAndTransferFunds(
355
+ instanceReader,
356
+ instance.getInstanceStore(),
357
+ tokenHandler,
358
+ policyHolder,
359
+ productNftId,
360
+ bundleNftId,
361
+ referralId,
362
+ premium);
363
+ }
364
+
365
+
366
+ function _checkPremiumBalanceAndAllowance(
367
+ TokenHandler tokenHandler,
368
+ address policyHolder,
369
+ Amount premiumExpectedAmount,
370
+ Amount premiumPaidAmount
371
+ )
372
+ internal
373
+ virtual
374
+ view
375
+ {
376
+ // TODO decide how to handle this properly
377
+ // not clear if this is the best way to handle this
378
+ if (premiumExpectedAmount < premiumPaidAmount) {
379
+ revert ErrorPolicyServicePremiumHigherThanExpected(premiumExpectedAmount, premiumPaidAmount);
380
+ }
381
+
382
+ uint256 premiumAmount = premiumPaidAmount.toInt();
383
+ uint256 balance = tokenHandler.getToken().balanceOf(policyHolder);
384
+ uint256 allowance = tokenHandler.getToken().allowance(policyHolder, address(tokenHandler));
385
+
386
+ if (balance < premiumAmount) {
387
+ revert ErrorPolicyServiceBalanceInsufficient(policyHolder, premiumAmount, balance);
388
+ }
389
+
390
+ if (allowance < premiumAmount) {
391
+ revert ErrorPolicyServiceAllowanceInsufficient(policyHolder, address(tokenHandler), premiumAmount, allowance);
392
+ }
393
+ }
394
+
395
+
396
+ function _processSaleAndTransferFunds(
397
+ InstanceReader instanceReader,
398
+ InstanceStore instanceStore,
399
+ TokenHandler tokenHandler,
400
+ address policyHolder,
401
+ NftId productNftId,
402
+ NftId bundleNftId,
403
+ ReferralId referralId,
404
+ IPolicy.Premium memory premium
405
+ )
406
+ internal
407
+ virtual
408
+ {
409
+ (
410
+ NftId distributionNftId,
411
+ address distributionWallet,
412
+ address poolWallet,
413
+ address productWallet
414
+ ) = _getDistributionNftAndWallets(
415
+ instanceReader,
416
+ productNftId);
417
+
418
+ // update product fees, distribution and pool fees
419
+ _componentService.increaseProductFees(
420
+ instanceStore,
421
+ productNftId,
422
+ AmountLib.toAmount(premium.productFeeVarAmount + premium.productFeeFixAmount));
423
+
424
+ // update distribution fees and distributor commission and pool fees
425
+ _distributionService.processSale(
426
+ distributionNftId,
427
+ referralId,
428
+ premium);
429
+
430
+ // update pool and bundle fees
431
+ _poolService.processSale(
432
+ bundleNftId,
433
+ premium);
434
+
435
+ // transfer premium amounts to target wallets
436
+ tokenHandler.transfer(policyHolder, productWallet, premium.productFeeAmount);
437
+ tokenHandler.transfer(policyHolder, distributionWallet, premium.distributionFeeAndCommissionAmount);
438
+ tokenHandler.transfer(policyHolder, poolWallet, premium.poolPremiumAndFeeAmount);
439
+ }
440
+
441
+
442
+ function _getTokenHandlerAndProductWallet(
443
+ InstanceReader instanceReader,
444
+ NftId productNftId
445
+ )
446
+ internal
447
+ virtual
448
+ view
449
+ returns (
450
+ TokenHandler tokenHandler
451
+ )
452
+ {
453
+ tokenHandler = instanceReader.getComponentInfo(productNftId).tokenHandler;
454
+ }
455
+
456
+ function _getDistributionNftAndWallets(
457
+ InstanceReader instanceReader,
458
+ NftId productNftId
459
+ )
460
+ internal
461
+ virtual
462
+ view returns (
463
+ NftId distributionNftId,
464
+ address distributionWallet,
465
+ address poolWallet,
466
+ address productWallet
467
+ )
468
+ {
469
+ IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
470
+ distributionNftId = productInfo.distributionNftId;
471
+ distributionWallet = instanceReader.getComponentInfo(distributionNftId).wallet;
472
+ poolWallet = instanceReader.getComponentInfo(productInfo.poolNftId).wallet;
473
+ productWallet = instanceReader.getComponentInfo(productNftId).wallet;
474
+ }
475
+ }
@@ -0,0 +1,42 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../shared/ProxyManager.sol";
6
+ import {PolicyService} from "./PolicyService.sol";
7
+ import {Registry} from "../registry/Registry.sol";
8
+ import {RegistryService} from "../registry/RegistryService.sol";
9
+ import {VersionLib} from "../type/Version.sol";
10
+
11
+ contract PolicyServiceManager is ProxyManager {
12
+
13
+ PolicyService private _policyService;
14
+
15
+ /// @dev initializes proxy manager with product service implementation
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ PolicyService svc = new PolicyService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(svc),
27
+ data,
28
+ salt);
29
+
30
+ _policyService = PolicyService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getPolicyService()
35
+ external
36
+ view
37
+ returns (PolicyService policyService)
38
+ {
39
+ return _policyService;
40
+ }
41
+
42
+ }