@etherisc/gif-next 0.0.2-8b116c2-371 → 0.0.2-8ce6c0b-352

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 (443) hide show
  1. package/README.md +30 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -228
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +317 -95
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +97 -57
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +100 -132
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +158 -16
  36. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +64 -84
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +215 -108
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -49
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +84 -135
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  64. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  66. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -0
  82. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -0
  84. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +43 -96
  86. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +66 -29
  88. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +44 -32
  90. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1496 -0
  92. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  94. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +89 -60
  96. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -42
  98. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  100. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +26 -202
  102. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +13 -0
  104. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  105. package/artifacts/contracts/pool/Pool.sol/Pool.json +26 -303
  106. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -41
  108. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
  110. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -37
  112. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -36
  114. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
  116. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  118. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -69
  120. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -52
  122. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  124. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  126. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  128. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  130. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -42
  132. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  134. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +84 -47
  136. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +53 -41
  138. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.json +92 -63
  140. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -49
  142. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  143. package/artifacts/contracts/product/Product.sol/Product.json +32 -153
  144. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  146. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
  148. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  150. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
  152. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -183
  154. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  155. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -78
  157. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1494 -161
  159. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
  161. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +37 -25
  163. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  165. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  166. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
  167. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  169. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  171. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  172. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +235 -85
  174. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +80 -60
  176. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  178. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  179. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  180. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +110 -0
  183. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -0
  185. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  186. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  187. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  189. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  190. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  192. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  194. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  195. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  196. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  197. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -53
  198. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  199. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  200. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  202. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  203. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  204. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  206. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  207. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  208. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  210. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  211. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  212. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  214. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  215. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  216. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  217. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  218. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
  219. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +44 -28
  221. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  222. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -84
  223. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  224. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  225. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -56
  227. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  229. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  230. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
  231. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -47
  233. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -152
  235. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  236. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  237. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  238. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  239. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
  241. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  243. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  245. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  247. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  249. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  250. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  251. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  253. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  254. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  255. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
  257. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  259. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  263. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  267. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  269. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  270. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  271. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  272. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  273. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  275. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  276. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  277. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
  279. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  281. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  283. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  285. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  287. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  288. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  289. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  290. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
  291. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  292. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  293. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  294. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  295. package/contracts/authorization/AccessAdmin.sol +591 -0
  296. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  297. package/contracts/authorization/Authorization.sol +218 -0
  298. package/contracts/authorization/IAccess.sol +48 -0
  299. package/contracts/authorization/IAccessAdmin.sol +136 -0
  300. package/contracts/authorization/IAuthorization.sol +54 -0
  301. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  302. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  303. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  304. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  305. package/contracts/distribution/BasicDistribution.sol +149 -0
  306. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  307. package/contracts/distribution/Distribution.sol +142 -102
  308. package/contracts/distribution/DistributionService.sol +80 -26
  309. package/contracts/distribution/DistributionServiceManager.sol +2 -5
  310. package/contracts/distribution/IDistributionComponent.sol +25 -39
  311. package/contracts/distribution/IDistributionService.sol +18 -1
  312. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  313. package/contracts/instance/IInstance.sol +16 -12
  314. package/contracts/instance/IInstanceService.sol +34 -23
  315. package/contracts/instance/Instance.sol +106 -88
  316. package/contracts/instance/InstanceAdmin.sol +202 -267
  317. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  318. package/contracts/instance/InstanceReader.sol +24 -9
  319. package/contracts/instance/InstanceService.sol +159 -78
  320. package/contracts/instance/InstanceServiceManager.sol +2 -6
  321. package/contracts/instance/InstanceStore.sol +15 -20
  322. package/contracts/instance/base/BalanceStore.sol +11 -6
  323. package/contracts/instance/base/Cloneable.sol +2 -25
  324. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  325. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  326. package/contracts/instance/module/IComponents.sol +0 -1
  327. package/contracts/oracle/BasicOracle.sol +48 -0
  328. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  329. package/contracts/oracle/IOracle.sol +16 -0
  330. package/contracts/oracle/IOracleComponent.sol +2 -1
  331. package/contracts/oracle/Oracle.sol +72 -47
  332. package/contracts/oracle/OracleService.sol +5 -4
  333. package/contracts/oracle/OracleServiceManager.sol +2 -5
  334. package/contracts/pool/BasicPool.sol +164 -0
  335. package/contracts/pool/BasicPoolAuthorization.sol +52 -0
  336. package/contracts/pool/BundleService.sol +32 -44
  337. package/contracts/pool/BundleServiceManager.sol +2 -5
  338. package/contracts/pool/IPoolComponent.sol +0 -61
  339. package/contracts/pool/Pool.sol +143 -131
  340. package/contracts/pool/PoolService.sol +17 -34
  341. package/contracts/pool/PoolServiceManager.sol +2 -5
  342. package/contracts/product/ApplicationService.sol +17 -41
  343. package/contracts/product/ApplicationServiceManager.sol +2 -2
  344. package/contracts/product/BasicProduct.sol +82 -0
  345. package/contracts/product/BasicProductAuthorization.sol +43 -0
  346. package/contracts/product/ClaimService.sol +10 -36
  347. package/contracts/product/ClaimServiceManager.sol +2 -2
  348. package/contracts/product/IProductComponent.sol +7 -9
  349. package/contracts/product/PolicyService.sol +5 -5
  350. package/contracts/product/PolicyServiceManager.sol +2 -5
  351. package/contracts/product/PricingService.sol +4 -5
  352. package/contracts/product/PricingServiceManager.sol +2 -5
  353. package/contracts/product/Product.sol +103 -88
  354. package/contracts/product/ProductService.sol +12 -37
  355. package/contracts/product/ProductServiceManager.sol +2 -5
  356. package/contracts/registry/IRegistry.sol +26 -16
  357. package/contracts/registry/IRegistryService.sol +6 -6
  358. package/contracts/registry/Registry.sol +87 -87
  359. package/contracts/registry/RegistryAdmin.sol +283 -155
  360. package/contracts/registry/RegistryService.sol +9 -23
  361. package/contracts/registry/RegistryServiceManager.sol +2 -7
  362. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  363. package/contracts/registry/ReleaseRegistry.sol +487 -0
  364. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  365. package/contracts/registry/TokenRegistry.sol +2 -2
  366. package/contracts/shared/Component.sol +13 -14
  367. package/contracts/shared/ComponentService.sol +76 -72
  368. package/contracts/shared/ComponentServiceManager.sol +2 -2
  369. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  370. package/contracts/shared/IComponentService.sol +10 -0
  371. package/contracts/shared/IInstanceLinkedComponent.sol +10 -0
  372. package/contracts/shared/IKeyValueStore.sol +1 -0
  373. package/contracts/shared/ILifecycle.sol +1 -2
  374. package/contracts/shared/IService.sol +8 -1
  375. package/contracts/shared/InitializableCustom.sol +2 -2
  376. package/contracts/shared/InstanceLinkedComponent.sol +47 -19
  377. package/contracts/shared/KeyValueStore.sol +6 -2
  378. package/contracts/shared/Lifecycle.sol +16 -69
  379. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  380. package/contracts/shared/Service.sol +27 -22
  381. package/contracts/staking/IStaking.sol +1 -2
  382. package/contracts/staking/IStakingService.sol +22 -11
  383. package/contracts/staking/StakeManagerLib.sol +52 -0
  384. package/contracts/staking/Staking.sol +75 -112
  385. package/contracts/staking/StakingLifecycle.sol +23 -0
  386. package/contracts/staking/StakingManager.sol +2 -6
  387. package/contracts/staking/StakingReader.sol +13 -17
  388. package/contracts/staking/StakingService.sol +61 -56
  389. package/contracts/staking/StakingServiceManager.sol +2 -3
  390. package/contracts/staking/StakingStore.sol +93 -60
  391. package/contracts/type/ObjectType.sol +167 -64
  392. package/contracts/type/RoleId.sol +103 -75
  393. package/contracts/type/Selector.sol +102 -0
  394. package/contracts/type/String.sol +53 -0
  395. package/contracts/type/UFixed.sol +6 -0
  396. package/contracts/type/Version.sol +3 -1
  397. package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
  398. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  399. package/package.json +6 -4
  400. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  401. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  402. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  403. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  404. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  405. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  406. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  407. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
  408. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  409. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  410. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  411. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  412. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  413. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  414. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  415. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  416. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  417. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  418. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  419. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  420. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  421. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  422. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  423. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  424. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  425. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  426. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  427. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  428. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  429. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  430. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  431. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  432. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  433. package/contracts/registry/ReleaseManager.sol +0 -600
  434. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  435. package/contracts/shared/AccessManagerCustom.sol +0 -736
  436. package/contracts/shared/AccessManagerExtended.sol +0 -470
  437. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  438. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  439. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  440. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  441. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  442. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  443. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -0,0 +1,43 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "../authorization/Authorization.sol";
5
+ import {BasicProduct} from "./BasicProduct.sol";
6
+ import {PRODUCT} from "../type/ObjectType.sol";
7
+ import {IAccess} from "../authorization/IAccess.sol";
8
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
+ import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+
12
+
13
+ contract BasicProductAuthorization
14
+ is Authorization
15
+ {
16
+
17
+ constructor(string memory componentName)
18
+ Authorization(componentName)
19
+ {}
20
+
21
+ function _setupTargets()
22
+ internal
23
+ virtual override
24
+ {
25
+ // basic component target
26
+ _addComponentTargetWithRole(PRODUCT());
27
+ }
28
+
29
+
30
+ function _setupTargetAuthorizations()
31
+ internal
32
+ virtual override
33
+ {
34
+ IAccess.FunctionInfo[] storage functions;
35
+
36
+ // authorize public role (open access to any account, only allows to lock target)
37
+ functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
38
+ _authorize(functions, BasicProduct.setFees.selector, "setFees");
39
+
40
+ _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");
41
+ }
42
+ }
43
+
@@ -1,48 +1,22 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IRisk} from "../instance/module/IRisk.sol";
5
- import {IService} from "./IApplicationService.sol";
6
-
7
4
  import {IComponents} from "../instance/module/IComponents.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
- import {IProductComponent} from "./IProductComponent.sol";
10
- import {Product} from "./Product.sol";
11
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
12
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
13
5
  import {IInstance} from "../instance/IInstance.sol";
14
6
  import {IPolicy} from "../instance/module/IPolicy.sol";
15
- import {IRisk} from "../instance/module/IRisk.sol";
16
- import {IBundle} from "../instance/module/IBundle.sol";
17
- import {IProductService} from "./IProductService.sol";
18
-
19
- import {TokenHandler} from "../shared/TokenHandler.sol";
20
-
21
- import {IVersionable} from "../shared/IVersionable.sol";
22
- import {Versionable} from "../shared/Versionable.sol";
23
-
24
7
  import {Amount, AmountLib} from "../type/Amount.sol";
25
- import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
26
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
27
- import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
28
- import {ObjectType, INSTANCE, PRODUCT, POOL, APPLICATION, POLICY, CLAIM, BUNDLE} from "../type/ObjectType.sol";
29
- import {SUBMITTED, ACTIVE, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
30
- import {NftId, NftIdLib} from "../type/NftId.sol";
31
- import {Fee, FeeLib} from "../type/Fee.sol";
32
- import {ReferralId} from "../type/Referral.sol";
33
- import {RiskId} from "../type/RiskId.sol";
8
+ import {TimestampLib} from "../type/Timestamp.sol";
9
+ import {ObjectType, CLAIM, PRODUCT, POOL} from "../type/ObjectType.sol";
10
+ import {SUBMITTED, KEEP_STATE, DECLINED, CONFIRMED, CLOSED, PAID} from "../type/StateId.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {FeeLib} from "../type/Fee.sol";
34
13
  import {StateId} from "../type/StateId.sol";
35
14
  import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
36
15
  import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
37
- import {Version, VersionLib} from "../type/Version.sol";
38
-
39
16
  import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
40
17
  import {InstanceReader} from "../instance/InstanceReader.sol";
41
- import {IBundleService} from "../pool/IBundleService.sol";
42
18
  import {IClaimService} from "./IClaimService.sol";
43
19
  import {IPoolService} from "../pool/IPoolService.sol";
44
- import {IService} from "../shared/IService.sol";
45
- import {Service} from "../shared/Service.sol";
46
20
 
47
21
 
48
22
  contract ClaimService is
@@ -73,11 +47,6 @@ contract ClaimService is
73
47
  registerInterface(type(IClaimService).interfaceId);
74
48
  }
75
49
 
76
-
77
- function getDomain() public pure override returns(ObjectType) {
78
- return CLAIM();
79
- }
80
-
81
50
  function submit(
82
51
  NftId policyNftId,
83
52
  Amount claimAmount,
@@ -439,4 +408,9 @@ contract ClaimService is
439
408
  // get claim info
440
409
  claimInfo = instanceReader.getClaimInfo(policyNftId, claimId);
441
410
  }
411
+
412
+
413
+ function _getDomain() internal pure override returns(ObjectType) {
414
+ return CLAIM();
415
+ }
442
416
  }
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ClaimService} from "./ClaimService.sol";
7
7
 
8
8
  contract ClaimServiceManager is ProxyManager {
@@ -10,12 +10,9 @@ import {ReferralId} from "../type/Referral.sol";
10
10
  import {RiskId} from "../type/RiskId.sol";
11
11
  import {Seconds} from "../type/Seconds.sol";
12
12
 
13
- interface IProductComponent is IInstanceLinkedComponent {
14
-
15
- function setFees(
16
- Fee memory productFee,
17
- Fee memory processingFee
18
- ) external;
13
+ interface IProductComponent is
14
+ IInstanceLinkedComponent
15
+ {
19
16
 
20
17
  function calculatePremium(
21
18
  Amount sumInsuredAmount,
@@ -33,10 +30,11 @@ interface IProductComponent is IInstanceLinkedComponent {
33
30
  bytes memory applicationData
34
31
  ) external view returns (Amount netPremiumAmount);
35
32
 
33
+ function getPoolNftId() external view returns (NftId poolNftId);
34
+ function getDistributionNftId() external view returns (NftId distributionNftId);
35
+
36
36
 
37
37
  /// @dev returns initial pool specific infos for this pool
38
38
  function getInitialProductInfo() external view returns (IComponents.ProductInfo memory info);
39
-
40
- function getPoolNftId() external view returns (NftId poolNftId);
41
- function getDistributionNftId() external view returns (NftId distributionNftId);
39
+
42
40
  }
@@ -85,11 +85,6 @@ contract PolicyService is
85
85
  }
86
86
 
87
87
 
88
- function getDomain() public pure override returns(ObjectType) {
89
- return POLICY();
90
- }
91
-
92
-
93
88
  function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
94
89
  IRegistry.ObjectInfo memory productInfo;
95
90
  (, productInfo,) = _getAndVerifyActiveComponent(PRODUCT());
@@ -472,4 +467,9 @@ contract PolicyService is
472
467
  poolWallet = instanceReader.getComponentInfo(productInfo.poolNftId).wallet;
473
468
  productWallet = instanceReader.getComponentInfo(productNftId).wallet;
474
469
  }
470
+
471
+
472
+ function _getDomain() internal pure override returns(ObjectType) {
473
+ return POLICY();
474
+ }
475
475
  }
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
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
7
 
11
8
  contract PolicyServiceManager is ProxyManager {
12
9
 
@@ -56,11 +56,6 @@ contract PricingService is
56
56
  _distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
57
57
  }
58
58
 
59
-
60
- function getDomain() public pure override returns(ObjectType) {
61
- return PRICE();
62
- }
63
-
64
59
  /// @dev calculates the premium amount for the specified attributes
65
60
  /// also returns the various fee components involved with creating a policy
66
61
  function calculatePremium(
@@ -298,4 +293,8 @@ contract PricingService is
298
293
  premiumWithTargetWalletAmounts = premium;
299
294
  }
300
295
 
296
+
297
+ function _getDomain() internal pure override returns(ObjectType) {
298
+ return PRICE();
299
+ }
301
300
  }
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {PricingService} from "./PricingService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {REGISTRY} from "../type/ObjectType.sol";
10
7
 
11
8
  contract PricingServiceManager is ProxyManager {
12
9
 
@@ -9,6 +9,7 @@ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
9
  import {Fee, FeeLib} from "../type/Fee.sol";
10
10
  import {IRisk} from "../instance/module/IRisk.sol";
11
11
  import {IApplicationService} from "./IApplicationService.sol";
12
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
12
13
  import {IComponentService} from "../shared/IComponentService.sol";
13
14
  import {IPolicyService} from "./IPolicyService.sol";
14
15
  import {IProductService} from "./IProductService.sol";
@@ -52,9 +53,92 @@ abstract contract Product is
52
53
  Distribution _distribution;
53
54
  }
54
55
 
55
- function initializeProduct(
56
+
57
+ function calculatePremium(
58
+ Amount sumInsuredAmount,
59
+ RiskId riskId,
60
+ Seconds lifetime,
61
+ bytes memory applicationData,
62
+ NftId bundleNftId,
63
+ ReferralId referralId
64
+ )
65
+ external
66
+ view
67
+ override
68
+ returns (Amount premiumAmount)
69
+ {
70
+ IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
71
+ getNftId(),
72
+ riskId,
73
+ sumInsuredAmount,
74
+ lifetime,
75
+ applicationData,
76
+ bundleNftId,
77
+ referralId
78
+ );
79
+
80
+ return AmountLib.toAmount(premium.premiumAmount);
81
+ }
82
+
83
+ function calculateNetPremium(
84
+ Amount sumInsuredAmount,
85
+ RiskId riskId,
86
+ Seconds lifetime,
87
+ bytes memory applicationData
88
+ )
89
+ external
90
+ view
91
+ virtual override
92
+ returns (Amount netPremiumAmount)
93
+ {
94
+ // default 10% of sum insured
95
+ return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
96
+ }
97
+
98
+
99
+ function register()
100
+ external
101
+ virtual
102
+ onlyOwner()
103
+ {
104
+ _getProductStorage()._componentService.registerProduct();
105
+ _approveTokenHandler(type(uint256).max);
106
+ }
107
+
108
+
109
+ function getInitialProductInfo()
110
+ public
111
+ virtual
112
+ view
113
+ returns (IComponents.ProductInfo memory poolInfo)
114
+ {
115
+ ProductStorage storage $ = _getProductStorage();
116
+
117
+ return IComponents.ProductInfo({
118
+ distributionNftId: $._distributionNftId,
119
+ poolNftId: $._poolNftId,
120
+ productFee: FeeLib.zero(),
121
+ processingFee: FeeLib.zero(),
122
+ distributionFee: FeeLib.zero(),
123
+ minDistributionOwnerFee: FeeLib.zero(),
124
+ poolFee: FeeLib.zero(),
125
+ stakingFee: FeeLib.zero(),
126
+ performanceFee: FeeLib.zero()
127
+ });
128
+ }
129
+
130
+ function getPoolNftId() external view override returns (NftId poolNftId) {
131
+ return getRegistry().getNftId(address(_getProductStorage()._pool));
132
+ }
133
+
134
+ function getDistributionNftId() external view override returns (NftId distributionNftId) {
135
+ return getRegistry().getNftId(address(_getProductStorage()._distribution));
136
+ }
137
+
138
+ function _initializeProduct(
56
139
  address registry,
57
140
  NftId instanceNftId,
141
+ IAuthorization authorization,
58
142
  address initialOwner,
59
143
  string memory name,
60
144
  address token,
@@ -64,11 +148,21 @@ abstract contract Product is
64
148
  bytes memory registryData, // writeonly data that will saved in the object info record of the registry
65
149
  bytes memory componentData // writeonly data that will saved in the object info record of the registry
66
150
  )
67
- public
151
+ internal
68
152
  virtual
69
153
  onlyInitializing()
70
154
  {
71
- initializeInstanceLinkedComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData, componentData);
155
+ _initializeInstanceLinkedComponent(
156
+ registry,
157
+ instanceNftId,
158
+ name,
159
+ token,
160
+ PRODUCT(),
161
+ authorization,
162
+ isInterceptor,
163
+ initialOwner,
164
+ registryData,
165
+ componentData);
72
166
 
73
167
  ProductStorage storage $ = _getProductStorage();
74
168
  // TODO add validation
@@ -88,27 +182,17 @@ abstract contract Product is
88
182
  }
89
183
 
90
184
 
91
- function register()
92
- external
93
- virtual
94
- onlyOwner()
95
- {
96
- _getProductStorage()._componentService.registerProduct();
97
- }
98
-
99
-
100
- function setFees(
185
+ function _setFees(
101
186
  Fee memory productFee,
102
187
  Fee memory processingFee
103
188
  )
104
- external
105
- onlyOwner
106
- restricted()
107
- override
189
+ internal
190
+ virtual
108
191
  {
109
192
  _getProductStorage()._componentService.setProductFees(productFee, processingFee);
110
193
  }
111
194
 
195
+
112
196
  function _createRisk(
113
197
  RiskId id,
114
198
  bytes memory data
@@ -139,10 +223,12 @@ abstract contract Product is
139
223
  );
140
224
  }
141
225
 
226
+
142
227
  function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
143
228
  return getInstance().getInstanceReader().getRiskInfo(id);
144
229
  }
145
230
 
231
+
146
232
  function _createApplication(
147
233
  address applicationOwner,
148
234
  RiskId riskId,
@@ -290,77 +376,6 @@ abstract contract Product is
290
376
  payoutId);
291
377
  }
292
378
 
293
- function calculatePremium(
294
- Amount sumInsuredAmount,
295
- RiskId riskId,
296
- Seconds lifetime,
297
- bytes memory applicationData,
298
- NftId bundleNftId,
299
- ReferralId referralId
300
- )
301
- external
302
- view
303
- override
304
- returns (Amount premiumAmount)
305
- {
306
- IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
307
- getNftId(),
308
- riskId,
309
- sumInsuredAmount,
310
- lifetime,
311
- applicationData,
312
- bundleNftId,
313
- referralId
314
- );
315
-
316
- return AmountLib.toAmount(premium.premiumAmount);
317
- }
318
-
319
- function calculateNetPremium(
320
- Amount sumInsuredAmount,
321
- RiskId riskId,
322
- Seconds lifetime,
323
- bytes memory applicationData
324
- )
325
- external
326
- view
327
- virtual override
328
- returns (Amount netPremiumAmount)
329
- {
330
- // default 10% of sum insured
331
- return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
332
- }
333
-
334
-
335
- function getInitialProductInfo()
336
- public
337
- virtual
338
- view
339
- returns (IComponents.ProductInfo memory poolInfo)
340
- {
341
- ProductStorage storage $ = _getProductStorage();
342
-
343
- return IComponents.ProductInfo({
344
- distributionNftId: $._distributionNftId,
345
- poolNftId: $._poolNftId,
346
- productFee: FeeLib.zero(),
347
- processingFee: FeeLib.zero(),
348
- distributionFee: FeeLib.zero(),
349
- minDistributionOwnerFee: FeeLib.zero(),
350
- poolFee: FeeLib.zero(),
351
- stakingFee: FeeLib.zero(),
352
- performanceFee: FeeLib.zero()
353
- });
354
- }
355
-
356
- function getPoolNftId() external view override returns (NftId poolNftId) {
357
- return getRegistry().getNftId(address(_getProductStorage()._pool));
358
- }
359
-
360
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
361
- return getRegistry().getNftId(address(_getProductStorage()._distribution));
362
- }
363
-
364
379
  function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
365
380
  return RiskIdLib.toRiskId(riskName);
366
381
  }
@@ -1,45 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IRegistry} from "../registry/IRegistry.sol";
5
- import {IProductComponent} from "./IProductComponent.sol";
6
- import {Product} from "./Product.sol";
7
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
8
- import {IPoolComponent} from "../pool/IPoolComponent.sol";
9
- import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
10
4
  import {IInstance} from "../instance/IInstance.sol";
11
- import {IPolicy} from "../instance/module/IPolicy.sol";
12
- import {IRisk} from "../instance/module/IRisk.sol";
13
- import {IBundle} from "../instance/module/IBundle.sol";
5
+ import {IInstanceService} from "../instance/IInstanceService.sol";
6
+ import {IPoolService} from "../pool/PoolService.sol";
14
7
  import {IProductService} from "./IProductService.sol";
15
- import {IComponents} from "../instance/module/IComponents.sol";
16
-
17
- import {TokenHandler} from "../shared/TokenHandler.sol";
18
-
19
- import {IVersionable} from "../shared/IVersionable.sol";
20
- import {Versionable} from "../shared/Versionable.sol";
8
+ import {IRegistryService} from "../registry/IRegistryService.sol";
9
+ import {IRisk} from "../instance/module/IRisk.sol";
21
10
 
22
- import {Timestamp, zeroTimestamp} from "../type/Timestamp.sol";
23
- import {UFixed, UFixedLib} from "../type/UFixed.sol";
24
- import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
11
+ import {InstanceReader} from "../instance/InstanceReader.sol";
25
12
  import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
26
- import {APPLIED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
27
- import {NftId, NftIdLib} from "../type/NftId.sol";
28
- import {Fee, FeeLib} from "../type/Fee.sol";
29
- import {ReferralId} from "../type/Referral.sol";
13
+ import {KEEP_STATE} from "../type/StateId.sol";
14
+ import {NftId} from "../type/NftId.sol";
30
15
  import {RiskId} from "../type/RiskId.sol";
31
16
  import {StateId} from "../type/StateId.sol";
32
- import {Version, VersionLib} from "../type/Version.sol";
33
- import {RoleId, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
34
-
35
- import {IService} from "../shared/IService.sol";
36
- import {Service} from "../shared/Service.sol";
37
17
  import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
38
- import {IInstanceService} from "../instance/IInstanceService.sol";
39
- import {IProductService} from "./IProductService.sol";
40
- import {IRegistryService} from "../registry/IRegistryService.sol";
41
- import {InstanceReader} from "../instance/InstanceReader.sol";
42
- import {IPoolService} from "../pool/PoolService.sol";
43
18
 
44
19
  contract ProductService is
45
20
  ComponentVerifyingService,
@@ -75,11 +50,6 @@ contract ProductService is
75
50
  }
76
51
 
77
52
 
78
- function getDomain() public pure override returns(ObjectType) {
79
- return PRODUCT();
80
- }
81
-
82
-
83
53
  function createRisk(
84
54
  RiskId riskId,
85
55
  bytes memory data
@@ -121,4 +91,9 @@ contract ProductService is
121
91
  (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
122
92
  instance.getInstanceStore().updateRiskState(riskId, state);
123
93
  }
94
+
95
+
96
+ function _getDomain() internal pure override returns(ObjectType) {
97
+ return PRODUCT();
98
+ }
124
99
  }
@@ -1,12 +1,9 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IVersionable} from "../shared/IVersionable.sol";
5
- import {ProxyManager} from "../shared/ProxyManager.sol";
4
+ import {IVersionable} from "../upgradeability/IVersionable.sol";
5
+ import {ProxyManager} from "../upgradeability/ProxyManager.sol";
6
6
  import {ProductService} from "./ProductService.sol";
7
- import {Registry} from "../registry/Registry.sol";
8
- import {RegistryService} from "../registry/RegistryService.sol";
9
- import {VersionLib} from "../type/Version.sol";
10
7
 
11
8
  contract ProductServiceManager is ProxyManager {
12
9
 
@@ -7,21 +7,29 @@ import {NftId} from "../type/NftId.sol";
7
7
  import {ObjectType} from "../type/ObjectType.sol";
8
8
  import {VersionPart} from "../type/Version.sol";
9
9
  import {Timestamp} from "../type/Timestamp.sol";
10
- import {RoleId} from "../type/RoleId.sol";
11
10
 
11
+ /// @title Chain Registry interface.
12
+ /// A chain registry holds all protocol relevant objects with basic metadata.
13
+ /// Registered objects include services, instances, products, pools, policies, bundles, stakes and more.
14
+ /// Registered objects are represented by NFTs.
12
15
  interface IRegistry is IERC165 {
13
16
 
14
17
  event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
15
18
  event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
16
19
 
20
+ // register()
21
+ error ErrorRegistryCallerNotRegistryService();
22
+ error ErrorRegistryService(address service);
23
+
17
24
  // registerService()
18
- error ErrorRegistryCallerNotReleaseManager();
25
+ error ErrorRegistryCallerNotReleaseRegistry();
26
+ error ErrorRegistryServiceAddressZero();
27
+ error ErrorRegistryServiceVersionZero();
28
+ error ErrorRegistryNotService(address service, ObjectType objectType);
29
+ error ErrorRegistryServiceParentNotRegistry(NftId parentNftId);
19
30
  error ErrorRegistryDomainZero(address service);
20
31
  error ErrorRegistryDomainAlreadyRegistered(address service, VersionPart version, ObjectType domain);
21
32
 
22
- // register()
23
- error ErrorRegistryCallerNotRegistryService();
24
-
25
33
  // registerWithCustomTypes()
26
34
  error ErrorRegistryCoreTypeRegistration();
27
35
 
@@ -40,30 +48,34 @@ interface IRegistry is IERC165 {
40
48
  bytes data;
41
49
  }
42
50
 
43
-
44
51
  struct ReleaseInfo {
45
52
  VersionPart version;
46
53
  bytes32 salt;
47
54
  address[] addresses;
48
55
  string[] names;
49
- RoleId[][] serviceRoles;
50
- string[][] serviceRoleNames;
51
- RoleId[][] functionRoles;
52
- string[][] functionRoleNames;
53
- bytes4[][][] selectors;
54
56
  ObjectType[] domains;
55
57
  Timestamp activatedAt;
56
58
  Timestamp disabledAt;
57
59
  }
58
60
 
61
+ /// @dev Register an object with a known core type.
62
+ /// The function returns a newly minted object NFT ID.
63
+ /// May not be used to register services.
64
+ function register(ObjectInfo memory info) external returns (NftId nftId);
65
+
66
+ /// @dev Register a service with using the provided domain and version.
67
+ /// The function returns a newly minted service NFT ID.
68
+ /// May only be used to register services.
59
69
  function registerService(
60
70
  ObjectInfo memory serviceInfo,
61
71
  VersionPart serviceVersion,
62
72
  ObjectType serviceDomain
63
73
  ) external returns(NftId nftId);
64
74
 
65
- function register(ObjectInfo memory info) external returns (NftId nftId);
66
-
75
+ /// @dev Register an object with a custom type.
76
+ /// The function returns a newly minted object NFT ID.
77
+ /// This function is reserved for GIF releases > 3.
78
+ /// May not be used to register known core types.
67
79
  function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
68
80
 
69
81
  function getInitialVersion() external view returns (VersionPart);
@@ -110,9 +122,7 @@ interface IRegistry is IERC165 {
110
122
  // TODO refactor the address getters below to contract getters
111
123
  function getChainNftAddress() external view returns (address);
112
124
 
113
- function getReleaseManagerAddress() external view returns (address);
114
-
115
- function getReleaseAccessManagerAddress(VersionPart version) external view returns (address);
125
+ function getReleaseRegistryAddress() external view returns (address);
116
126
 
117
127
  function getStakingAddress() external view returns (address);
118
128