@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845

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 (514) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
  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 +118 -99
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
  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 +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -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 +1 -1
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  45. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  46. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  47. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  49. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  51. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  52. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
  53. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  54. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
  55. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  56. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
  57. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  58. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
  59. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  61. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  63. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  65. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  67. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  69. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  71. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  73. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  74. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
  75. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  76. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
  77. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  78. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +53 -136
  79. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  80. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
  81. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  82. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
  83. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  85. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  87. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  89. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  91. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  92. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  93. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  95. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  97. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  99. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  101. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
  103. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  104. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  106. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  107. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  108. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  109. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
  110. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
  112. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
  114. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  116. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  118. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  119. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  120. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  122. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  128. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  129. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
  130. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  131. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  132. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  134. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +17 -122
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  138. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  139. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  140. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  142. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  143. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
  144. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  146. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  148. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  150. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  152. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  154. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  155. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
  156. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  157. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  158. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  161. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  162. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  163. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  164. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  165. package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
  166. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  167. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  168. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  169. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  170. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  171. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  172. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  174. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  175. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
  176. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
  178. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  180. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  181. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  182. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  183. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  184. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  185. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  186. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  188. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  189. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  190. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  191. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  192. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  193. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  194. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  195. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  196. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  197. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  198. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  199. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  200. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  201. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  202. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  203. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  204. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  205. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  206. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  207. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  208. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  209. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  211. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  212. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  213. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  214. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  215. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  216. package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  217. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  218. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  219. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  220. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  221. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  222. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  223. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  224. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  225. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  226. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  227. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  228. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  229. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  230. package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  231. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  232. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  233. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  234. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  235. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  236. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  237. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  238. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  239. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  240. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  241. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  242. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
  243. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  244. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  245. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  246. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  247. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  248. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  249. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  250. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  251. package/contracts/{components → distribution}/Distribution.sol +41 -64
  252. package/contracts/distribution/DistributionService.sol +298 -0
  253. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  254. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  255. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  256. package/contracts/instance/BundleManager.sol +5 -5
  257. package/contracts/instance/IInstance.sol +45 -70
  258. package/contracts/instance/IInstanceService.sol +29 -11
  259. package/contracts/instance/Instance.sol +112 -195
  260. package/contracts/instance/InstanceAdmin.sol +331 -0
  261. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  262. package/contracts/instance/InstanceReader.sol +106 -58
  263. package/contracts/instance/InstanceService.sol +166 -288
  264. package/contracts/instance/InstanceServiceManager.sol +11 -21
  265. package/contracts/instance/InstanceStore.sol +260 -0
  266. package/contracts/instance/base/BalanceStore.sol +118 -0
  267. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  268. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
  269. package/contracts/instance/module/IAccess.sol +4 -12
  270. package/contracts/instance/module/IBundle.sol +6 -9
  271. package/contracts/instance/module/IComponents.sol +21 -10
  272. package/contracts/instance/module/IDistribution.sol +7 -6
  273. package/contracts/instance/module/IPolicy.sol +20 -14
  274. package/contracts/instance/module/IRisk.sol +1 -1
  275. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  276. package/contracts/pool/BundleService.sol +296 -0
  277. package/contracts/pool/BundleServiceManager.sol +42 -0
  278. package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
  279. package/contracts/{components → pool}/IPoolComponent.sol +16 -17
  280. package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
  281. package/contracts/{components → pool}/Pool.sol +52 -55
  282. package/contracts/pool/PoolService.sol +453 -0
  283. package/contracts/pool/PoolServiceManager.sol +42 -0
  284. package/contracts/product/ApplicationService.sol +254 -0
  285. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  286. package/contracts/{instance/service → product}/ClaimService.sol +167 -86
  287. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  288. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  289. package/contracts/{instance/service → product}/IClaimService.sol +18 -15
  290. package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
  291. package/contracts/product/IPricingService.sol +39 -0
  292. package/contracts/product/IProductComponent.sol +42 -0
  293. package/contracts/product/IProductService.sol +33 -0
  294. package/contracts/product/PolicyService.sol +475 -0
  295. package/contracts/product/PolicyServiceManager.sol +42 -0
  296. package/contracts/product/PricingService.sol +301 -0
  297. package/contracts/product/PricingServiceManager.sol +42 -0
  298. package/contracts/{components → product}/Product.sol +83 -77
  299. package/contracts/product/ProductService.sol +124 -0
  300. package/contracts/product/ProductServiceManager.sol +42 -0
  301. package/contracts/registry/ChainNft.sol +8 -1
  302. package/contracts/registry/IRegistry.sol +44 -21
  303. package/contracts/registry/IRegistryService.sol +37 -34
  304. package/contracts/registry/Registry.sol +191 -82
  305. package/contracts/registry/RegistryAdmin.sol +237 -0
  306. package/contracts/registry/RegistryService.sol +66 -82
  307. package/contracts/registry/RegistryServiceManager.sol +21 -25
  308. package/contracts/registry/ReleaseManager.sol +458 -183
  309. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  310. package/contracts/registry/TokenRegistry.sol +261 -62
  311. package/contracts/shared/AccessManagerCustom.sol +736 -0
  312. package/contracts/shared/AccessManagerExtended.sol +470 -0
  313. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  314. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  315. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  316. package/contracts/shared/Component.sol +278 -0
  317. package/contracts/shared/ComponentService.sol +596 -0
  318. package/contracts/shared/ComponentServiceManager.sol +35 -0
  319. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  320. package/contracts/shared/ERC165.sol +1 -1
  321. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  322. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  323. package/contracts/{components → shared}/IComponent.sol +23 -29
  324. package/contracts/shared/IComponentService.sol +91 -0
  325. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  326. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  327. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  328. package/contracts/shared/INftOwnable.sol +2 -2
  329. package/contracts/shared/IPolicyHolder.sol +14 -7
  330. package/contracts/shared/IService.sol +2 -2
  331. package/contracts/shared/IVersionable.sol +1 -1
  332. package/contracts/shared/InitializableCustom.sol +177 -0
  333. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  334. package/contracts/shared/KeyValueStore.sol +127 -0
  335. package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
  336. package/contracts/shared/NftIdSetManager.sol +65 -0
  337. package/contracts/shared/NftOwnable.sol +3 -14
  338. package/contracts/shared/PolicyHolder.sol +32 -17
  339. package/contracts/shared/ProxyManager.sol +34 -4
  340. package/contracts/shared/Registerable.sol +3 -3
  341. package/contracts/shared/Service.sol +9 -4
  342. package/contracts/shared/TokenHandler.sol +27 -2
  343. package/contracts/shared/Versionable.sol +1 -1
  344. package/contracts/staking/IStaking.sol +168 -0
  345. package/contracts/staking/IStakingService.sol +149 -0
  346. package/contracts/staking/StakeManagerLib.sol +179 -0
  347. package/contracts/staking/Staking.sol +551 -0
  348. package/contracts/staking/StakingManager.sol +54 -0
  349. package/contracts/staking/StakingReader.sol +187 -0
  350. package/contracts/staking/StakingService.sol +406 -0
  351. package/contracts/staking/StakingServiceManager.sol +45 -0
  352. package/contracts/staking/StakingStore.sol +572 -0
  353. package/contracts/staking/TargetManagerLib.sol +207 -0
  354. package/contracts/{types → type}/AddressSet.sol +1 -1
  355. package/contracts/{types → type}/Amount.sol +59 -1
  356. package/contracts/{types → type}/Blocknumber.sol +20 -3
  357. package/contracts/{types → type}/Fee.sol +24 -22
  358. package/contracts/{types → type}/NftId.sol +14 -16
  359. package/contracts/{types → type}/NftIdSet.sol +2 -2
  360. package/contracts/{types → type}/ObjectType.sol +15 -3
  361. package/contracts/{types → type}/Referral.sol +1 -1
  362. package/contracts/{types → type}/RiskId.sol +1 -1
  363. package/contracts/{types → type}/RoleId.sol +55 -9
  364. package/contracts/{types → type}/Seconds.sol +27 -0
  365. package/contracts/{types → type}/StateId.sol +17 -4
  366. package/contracts/{types → type}/Version.sol +1 -1
  367. package/package.json +3 -3
  368. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  369. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  370. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  371. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  372. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  373. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  374. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  375. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  376. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  377. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  378. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  379. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  380. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  381. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  382. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  383. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  384. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  385. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  386. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  387. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  388. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  389. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  390. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
  391. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  393. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  394. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  395. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  396. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  397. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  398. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
  399. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  400. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
  401. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  402. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
  403. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  404. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
  405. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  406. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  407. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  408. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  409. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  411. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  412. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  413. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  415. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  416. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  417. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  418. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  419. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  420. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  421. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
  422. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  423. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
  424. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  426. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  428. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  429. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  430. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  431. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  432. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  433. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  434. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  435. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  436. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  437. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  438. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  439. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  440. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  441. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  442. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  443. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  444. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  445. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  446. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  447. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  448. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  449. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  451. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  452. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  453. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  454. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  455. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  456. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  457. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  458. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  459. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  460. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  461. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  462. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  463. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  464. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  465. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  466. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  467. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  468. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  469. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  470. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  471. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  472. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  474. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  478. package/contracts/components/Component.sol +0 -253
  479. package/contracts/components/IProductComponent.sol +0 -40
  480. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  481. package/contracts/instance/InstanceAccessManager.sol +0 -527
  482. package/contracts/instance/base/ComponentService.sol +0 -130
  483. package/contracts/instance/base/KeyValueStore.sol +0 -149
  484. package/contracts/instance/module/ISetup.sol +0 -33
  485. package/contracts/instance/module/ITreasury.sol +0 -23
  486. package/contracts/instance/service/ApplicationService.sol +0 -356
  487. package/contracts/instance/service/BundleService.sol +0 -443
  488. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  489. package/contracts/instance/service/DistributionService.sol +0 -431
  490. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  491. package/contracts/instance/service/IProductService.sol +0 -40
  492. package/contracts/instance/service/PolicyService.sol +0 -358
  493. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  494. package/contracts/instance/service/PoolService.sol +0 -349
  495. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  496. package/contracts/instance/service/ProductService.sol +0 -210
  497. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  498. package/contracts/registry/RegistryAccessManager.sol +0 -216
  499. package/contracts/shared/ContractDeployerLib.sol +0 -72
  500. package/contracts/test/TestFee.sol +0 -25
  501. package/contracts/test/TestRegisterable.sol +0 -18
  502. package/contracts/test/TestRoleId.sol +0 -14
  503. package/contracts/test/TestService.sol +0 -25
  504. package/contracts/test/TestVersion.sol +0 -44
  505. package/contracts/test/TestVersionable.sol +0 -17
  506. package/contracts/test/Usdc.sol +0 -26
  507. package/contracts/types/ChainId.sol +0 -38
  508. package/contracts/types/NumberId.sol +0 -52
  509. /package/contracts/{types → type}/ClaimId.sol +0 -0
  510. /package/contracts/{types → type}/DistributorType.sol +0 -0
  511. /package/contracts/{types → type}/Key32.sol +0 -0
  512. /package/contracts/{types → type}/PayoutId.sol +0 -0
  513. /package/contracts/{types → type}/Timestamp.sol +0 -0
  514. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -0,0 +1,296 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IComponents} from "../instance/module/IComponents.sol";
6
+ import {IComponentService} from "../shared/IComponentService.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {IInstance} from "../instance/IInstance.sol";
9
+ import {InstanceStore} from "../instance/InstanceStore.sol";
10
+ import {IPolicy} from "../instance/module/IPolicy.sol";
11
+
12
+ import {IVersionable} from "../shared/IVersionable.sol";
13
+ import {INftOwnable} from "../shared/INftOwnable.sol";
14
+ import {NftId, NftIdLib} from "../type/NftId.sol";
15
+ import {ObjectType, COMPONENT, POOL, BUNDLE, REGISTRY} from "../type/ObjectType.sol";
16
+ import {POOL_OWNER_ROLE, RoleId} from "../type/RoleId.sol";
17
+ import {Pool} from "./Pool.sol";
18
+
19
+ import {Amount, AmountLib} from "../type/Amount.sol";
20
+ import {Fee, FeeLib} from "../type/Fee.sol";
21
+ import {StateId, ACTIVE, PAUSED, CLOSED, KEEP_STATE} from "../type/StateId.sol";
22
+ import {Seconds} from "../type/Seconds.sol";
23
+ import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
24
+ import {Version, VersionLib} from "../type/Version.sol";
25
+ import {Versionable} from "../shared/Versionable.sol";
26
+
27
+ import {IService} from "../shared/IService.sol";
28
+ import {Service} from "../shared/Service.sol";
29
+ import {BundleManager} from "../instance/BundleManager.sol";
30
+ import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
31
+ import {IBundleService} from "./IBundleService.sol";
32
+ import {IRegistryService} from "../registry/IRegistryService.sol";
33
+ import {InstanceService} from "../instance/InstanceService.sol";
34
+ import {InstanceReader} from "../instance/InstanceReader.sol";
35
+
36
+ string constant BUNDLE_SERVICE_NAME = "BundleService";
37
+
38
+ contract BundleService is
39
+ ComponentVerifyingService,
40
+ IBundleService
41
+ {
42
+ using NftIdLib for NftId;
43
+
44
+ string public constant NAME = "BundleService";
45
+
46
+ address private _registryAddress;
47
+ IRegistryService private _registryService;
48
+ IComponentService private _componentService;
49
+
50
+ function _initialize(
51
+ address owner,
52
+ bytes memory data
53
+ )
54
+ internal
55
+ initializer
56
+ virtual override
57
+ {
58
+ address registryAddress;
59
+ address initialOwner;
60
+ (registryAddress, initialOwner) = abi.decode(data, (address, address));
61
+ // TODO while PoolService is not deployed in PoolServiceManager constructor
62
+ // owner is PoolServiceManager deployer
63
+ initializeService(registryAddress, address(0), owner);
64
+
65
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
66
+ _componentService = IComponentService(_getServiceAddress(COMPONENT()));
67
+
68
+ registerInterface(type(IBundleService).interfaceId);
69
+ }
70
+
71
+ function getDomain() public pure override returns(ObjectType) {
72
+ return BUNDLE();
73
+ }
74
+
75
+
76
+ function setFee(
77
+ NftId bundleNftId,
78
+ Fee memory fee
79
+ )
80
+ external
81
+ virtual
82
+ {
83
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
84
+ InstanceReader instanceReader = instance.getInstanceReader();
85
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
86
+ if(bundleInfo.poolNftId.eqz()) {
87
+ revert ErrorBundleServiceBundleUnknown(bundleNftId);
88
+ }
89
+
90
+ if(bundleInfo.poolNftId != poolNftId) {
91
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
92
+ }
93
+
94
+ bundleInfo.fee = fee;
95
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
96
+ }
97
+
98
+
99
+ function create(
100
+ IInstance instance,
101
+ NftId poolNftId,
102
+ address owner,
103
+ Fee memory bundleFee,
104
+ Amount stakingAmount,
105
+ Seconds lifetime,
106
+ bytes calldata filter
107
+ )
108
+ external
109
+ override
110
+ restricted
111
+ returns(NftId bundleNftId)
112
+ {
113
+ // register bundle with registry
114
+ bundleNftId = _registryService.registerBundle(
115
+ IRegistry.ObjectInfo(
116
+ NftIdLib.zero(),
117
+ poolNftId,
118
+ BUNDLE(),
119
+ false, // intercepting property for bundles is defined on pool
120
+ address(0),
121
+ owner,
122
+ "" // bundle data to be stored in registry
123
+ )
124
+ );
125
+
126
+ // create bundle info in instance
127
+ InstanceStore instanceStore = instance.getInstanceStore();
128
+ instanceStore.createBundle(
129
+ bundleNftId,
130
+ IBundle.BundleInfo(
131
+ poolNftId,
132
+ bundleFee,
133
+ filter,
134
+ lifetime,
135
+ TimestampLib.blockTimestamp().addSeconds(lifetime),
136
+ zeroTimestamp()));
137
+
138
+ // bundle book keeping
139
+ _componentService.increaseBundleBalance(
140
+ instanceStore,
141
+ bundleNftId,
142
+ stakingAmount,
143
+ AmountLib.zero()); // fee amount
144
+
145
+ // put bundle under bundle managemet
146
+ BundleManager bundleManager = instance.getBundleManager();
147
+ bundleManager.add(bundleNftId);
148
+
149
+ // TODO add logging
150
+ }
151
+
152
+
153
+ // the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
154
+ function lockCollateral(
155
+ IInstance instance,
156
+ NftId policyNftId,
157
+ NftId bundleNftId,
158
+ Amount collateralAmount // required local amount to collateralize policy
159
+ )
160
+ external
161
+ virtual
162
+ restricted()
163
+ {
164
+ InstanceReader instanceReader = instance.getInstanceReader();
165
+ StateId bundleState = instanceReader.getMetadata(bundleNftId.toKey32(BUNDLE())).state;
166
+ IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
167
+
168
+ // ensure bundle is active and not yet expired
169
+ if(bundleState != ACTIVE() || bundleInfo.expiredAt < TimestampLib.blockTimestamp()) {
170
+ revert ErrorBundleServiceBundleNotOpen(bundleNftId, bundleState, bundleInfo.expiredAt);
171
+ }
172
+
173
+ // ensure bundle capacity is sufficent to collateralize policy
174
+ InstanceStore instanceStore = instance.getInstanceStore();
175
+ (
176
+ Amount balanceAmount,
177
+ Amount lockedAmount,
178
+ Amount feeAmount
179
+ ) = instanceStore.getAmounts(bundleNftId);
180
+
181
+ Amount capacity = balanceAmount - (lockedAmount + feeAmount);
182
+ if(capacity < collateralAmount) {
183
+ revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
184
+ }
185
+
186
+ // updated locked amount
187
+ instanceStore.increaseLocked(bundleNftId, collateralAmount);
188
+
189
+ // link policy to bundle in bundle manger
190
+ _linkPolicy(instance, policyNftId);
191
+ }
192
+
193
+
194
+ function lock(NftId bundleNftId)
195
+ external
196
+ virtual
197
+ {
198
+ (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
199
+
200
+ // udpate bundle state
201
+ instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
202
+
203
+ // update set of active bundles
204
+ BundleManager bundleManager = instance.getBundleManager();
205
+ bundleManager.lock(bundleNftId);
206
+
207
+ emit LogBundleServiceBundleLocked(bundleNftId);
208
+ }
209
+
210
+
211
+ function unlock(NftId bundleNftId)
212
+ external
213
+ virtual
214
+ {
215
+ (,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
216
+
217
+ // udpate bundle state
218
+ instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
219
+
220
+ // update set of active bundles
221
+ BundleManager bundleManager = instance.getBundleManager();
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
+ {
236
+ // udpate bundle state
237
+ instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
238
+
239
+ // ensure no open policies attached to bundle
240
+ BundleManager bundleManager = instance.getBundleManager();
241
+ uint256 openPolicies = bundleManager.activePolicies(bundleNftId);
242
+ if(openPolicies > 0) {
243
+ revert ErrorBundleServiceBundleWithOpenPolicies(bundleNftId, openPolicies);
244
+ }
245
+
246
+ // update set of active bundles
247
+ bundleManager.lock(bundleNftId);
248
+ }
249
+
250
+
251
+ function releaseCollateral(
252
+ IInstance instance,
253
+ NftId policyNftId,
254
+ NftId bundleNftId,
255
+ Amount collateralAmount
256
+ )
257
+ external
258
+ virtual
259
+ restricted()
260
+ {
261
+ instance.getInstanceStore().decreaseLocked(bundleNftId, collateralAmount);
262
+ }
263
+
264
+ /// @dev links policy to bundle
265
+ function _linkPolicy(IInstance instance, NftId policyNftId)
266
+ internal
267
+ {
268
+ InstanceReader instanceReader = instance.getInstanceReader();
269
+ IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
270
+
271
+ // ensure policy has not yet been activated in a previous tx already
272
+ if (policyInfo.activatedAt.gtz() && policyInfo.activatedAt < TimestampLib.blockTimestamp()) {
273
+ revert BundleManager.ErrorBundleManagerPolicyAlreadyActivated(policyNftId);
274
+ }
275
+
276
+ BundleManager bundleManager = instance.getBundleManager();
277
+ bundleManager.linkPolicy(policyNftId);
278
+ }
279
+
280
+ /// @dev unlinks policy from bundle
281
+ function unlinkPolicy(
282
+ IInstance instance,
283
+ NftId policyNftId
284
+ )
285
+ external
286
+ virtual
287
+ restricted
288
+ {
289
+ // ensure policy is closeable
290
+ if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
291
+ revert ErrorBundleServicePolicyNotCloseable(policyNftId);
292
+ }
293
+
294
+ instance.getBundleManager().unlinkPolicy(policyNftId);
295
+ }
296
+ }
@@ -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 {BundleService} from "./BundleService.sol";
7
+ import {Registry} from "../registry/Registry.sol";
8
+ import {RegistryService} from "../registry/RegistryService.sol";
9
+ import {ObjectType, REGISTRY} from "../type/ObjectType.sol";
10
+
11
+ contract BundleServiceManager is ProxyManager {
12
+
13
+ BundleService private _bundleService;
14
+
15
+ /// @dev initializes proxy manager with pool service implementation
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ BundleService bundleSrv = new BundleService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(bundleSrv),
27
+ data,
28
+ salt);
29
+
30
+ _bundleService = BundleService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getBundleService()
35
+ external
36
+ view
37
+ returns (BundleService)
38
+ {
39
+ return _bundleService;
40
+ }
41
+
42
+ }
@@ -1,28 +1,30 @@
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 {Amount} from "../type/Amount.sol";
5
+ import {NftId} from "../type/NftId.sol";
6
+ import {Fee} from "../type/Fee.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {IBundle} from "../instance/module/IBundle.sol";
9
+ import {IInstance} from "../instance/IInstance.sol";
10
+ import {Seconds} from "../type/Seconds.sol";
11
+ import {StateId} from "../type/StateId.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
13
13
 
14
14
  interface IBundleService is IService {
15
15
 
16
16
  event LogBundleServiceBundleActivated(NftId bundleNftId);
17
17
  event LogBundleServiceBundleLocked(NftId bundleNftId);
18
18
 
19
- error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, uint256 amount);
19
+ error ErrorBundleServiceInsufficientAllowance(address bundleOwner, address tokenHandlerAddress, Amount amount);
20
20
  error ErrorBundleServiceBundleNotOpen(NftId bundleNftId, StateId state, Timestamp expiredAt);
21
- error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, uint capacityAmount, uint collateralAmount);
21
+ error ErrorBundleServiceCapacityInsufficient(NftId bundleNftId, Amount capacityAmount, Amount collateralAmount);
22
22
  error ErrorBundleServiceBundleWithOpenPolicies(NftId bundleNftId, uint256 openPoliciesCount);
23
23
 
24
24
  error ErrorBundleServiceBundleUnknown(NftId bundleNftId);
25
- error ErrorBundleServiceBundlePoolMismatch(NftId expectedPoolNftId, NftId bundlePoolNftId);
25
+ error ErrorBundleServiceBundlePoolMismatch(NftId bundleNftId, NftId expectedPool, NftId actualPool);
26
+
27
+ error ErrorBundleServicePolicyNotCloseable(NftId policyNftId);
26
28
 
27
29
  /// @dev create a new bundle for the specified attributes
28
30
  /// may only be called by pool service
@@ -38,6 +40,13 @@ interface IBundleService is IService {
38
40
  external
39
41
  returns(NftId bundleNftId); // the nft id of the newly created bundle
40
42
 
43
+
44
+ /// @dev increase bundle stakes by the specified amount
45
+ /// may only be called by the bundle owner
46
+ // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
47
+
48
+ // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
49
+
41
50
  /// @dev locks the specified bundle, locked bundles are not available to collateralize new policies
42
51
  /// only active bundles may be locked
43
52
  /// may only be called by registered and unlocked pool components
@@ -71,19 +80,12 @@ interface IBundleService is IService {
71
80
  /// the premium (minus bundle fee) is added to the bundle capital
72
81
  /// may only be called by pool service
73
82
  function lockCollateral(
74
- IInstance instanceNftId,
83
+ IInstance instance,
75
84
  NftId policyNftId,
76
85
  NftId bundleNftId,
77
- uint256 collateralAmount,
78
- uint256 premium // premium amount after pool fee
86
+ Amount collateralAmount
79
87
  ) external;
80
88
 
81
- /// @dev updates the bundle's fees of with the provided fee amount
82
- function updateBundleFees(
83
- IInstance instance,
84
- NftId bundleNftId,
85
- Amount feeAmount
86
- ) external;
87
89
 
88
90
  /// @dev releases the specified collateral in the bundle
89
91
  /// may only be called by pool service
@@ -91,12 +93,14 @@ interface IBundleService is IService {
91
93
  IInstance instance,
92
94
  NftId policyNftId,
93
95
  NftId bundleNftId,
94
- uint256 collateralAmount
96
+ Amount collateralAmount
95
97
  ) external;
96
98
 
97
- function increaseBalance(IInstance instance, NftId bundleNftId, uint256 amount) external;
98
-
99
- // function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
100
-
101
- // function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
99
+ /// @dev unlink policy from bundle
100
+ /// policy may only be unlinked if policy is closeable
101
+ /// may only be called by pool service
102
+ function unlinkPolicy(
103
+ IInstance instance,
104
+ NftId policyNftId
105
+ ) external;
102
106
  }
@@ -1,34 +1,35 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Fee} from "../types/Fee.sol";
5
- import {IComponent} from "./IComponent.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {Fee} from "../type/Fee.sol";
6
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
6
7
  import {IComponents} from "../instance/module/IComponents.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {RoleId} from "../types/RoleId.sol";
9
- import {Seconds} from "../types/Seconds.sol";
10
- import {UFixed} from "../types/UFixed.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
10
+ import {Seconds} from "../type/Seconds.sol";
11
+ import {UFixed} from "../type/UFixed.sol";
11
12
 
12
13
  /// @dev pool components hold and manage the collateral to cover active policies
13
14
  /// pools come in different flavors
14
- interface IPoolComponent is IComponent {
15
+ interface IPoolComponent is IInstanceLinkedComponent {
15
16
 
16
17
  error ErrorPoolNotBundleOwner(NftId bundleNftId, address caller);
17
18
  error ErrorPoolNotPoolService(address caller);
18
19
 
19
20
  error ErrorPoolApplicationBundleMismatch(NftId applicationNftId);
20
21
 
21
- event LogPoolVerifiedByPool(address pool, NftId applicationNftId, uint256 collateralizationAmount);
22
+ event LogPoolVerifiedByPool(address pool, NftId applicationNftId, Amount collateralizationAmount);
22
23
 
23
24
  /// @dev increases the staked tokens by the specified amount
24
25
  /// only the bundle owner may stake tokens
25
26
  /// bundle MUST be in active or locked state
26
- function stake(NftId bundleNftId, uint256 amount) external;
27
+ function stake(NftId bundleNftId, Amount amount) external;
27
28
 
28
29
  /// @dev decreases the staked tokens by the specified amount
29
30
  /// only the bundle owner may unstake tokens from the bundle
30
31
  /// bundle MUST be in active, locked or closed state
31
- function unstake(NftId bundleNftId, uint256 amount) external;
32
+ function unstake(NftId bundleNftId, Amount amount) external;
32
33
 
33
34
  /// @dev extends the bundle lifetime of the bundle by the specified time
34
35
  /// only the bundle owner may extend the bundle's lifetime
@@ -61,7 +62,7 @@ interface IPoolComponent is IComponent {
61
62
 
62
63
  /// @dev sets the maximum overall capital amound held by this pool
63
64
  /// function may only be called by pool owner
64
- function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
65
+ function setMaxCapitalAmount(Amount maxCapitalAmount) external;
65
66
 
66
67
  /// @dev sets the required role to create/own bundles
67
68
  /// may only be called once after setting up a pool
@@ -88,7 +89,7 @@ interface IPoolComponent is IComponent {
88
89
  bytes memory applicationData,
89
90
  NftId bundleNftId,
90
91
  bytes memory bundleFilter,
91
- uint256 collateralizationAmount
92
+ Amount collateralizationAmount
92
93
  ) external;
93
94
 
94
95
  /// @dev returns true iff the application matches with the bundle
@@ -99,15 +100,13 @@ interface IPoolComponent is IComponent {
99
100
  bytes memory applicationData,
100
101
  NftId bundleNftId,
101
102
  bytes memory bundleFilter,
102
- uint256 collateralizationAmount
103
+ Amount collateralizationAmount
103
104
  )
104
105
  external
105
106
  view
106
107
  returns (bool isMatching);
107
108
 
108
- /// @dev returns pool specific infos for this pool
109
- /// when registered with an instance the info is obtained from the data stored in the instance
110
- /// when not registered the function returns the info from the component contract
111
- function getPoolInfo() external view returns (IComponents.PoolInfo memory info);
109
+ /// @dev returns initial pool specific infos for this pool
110
+ function getInitialPoolInfo() external view returns (IComponents.PoolInfo memory info);
112
111
 
113
112
  }