@etherisc/gif-next 0.0.2-ef2f083-203 → 0.0.2-efd035d-094

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 (585) hide show
  1. package/README.md +72 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  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/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +537 -309
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +343 -173
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +530 -3074
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +726 -308
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +536 -310
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +360 -94
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +718 -0
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → oracle/IOracleService.sol/IOracleService.json} +269 -174
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1133 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +868 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +714 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +297 -358
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +233 -200
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +259 -284
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +147 -87
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +371 -218
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +448 -191
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +577 -294
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +515 -337
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +328 -144
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +225 -180
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  175. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +88 -176
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  181. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  185. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  189. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  193. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  200. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Service.sol/Service.json +191 -165
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  203. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  205. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  206. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  210. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  212. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  214. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  230. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  232. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  245. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  262. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  263. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  264. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  266. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  270. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  272. package/contracts/distribution/Distribution.sol +261 -0
  273. package/contracts/distribution/DistributionService.sol +298 -0
  274. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  275. package/contracts/distribution/IDistributionComponent.sol +66 -0
  276. package/contracts/distribution/IDistributionService.sol +81 -0
  277. package/contracts/instance/BundleManager.sol +126 -0
  278. package/contracts/instance/IInstance.sol +68 -19
  279. package/contracts/instance/IInstanceService.sol +64 -13
  280. package/contracts/instance/Instance.sol +157 -364
  281. package/contracts/instance/InstanceAdmin.sol +331 -0
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  283. package/contracts/instance/InstanceReader.sol +172 -72
  284. package/contracts/instance/InstanceService.sol +301 -97
  285. package/contracts/instance/InstanceServiceManager.sol +12 -24
  286. package/contracts/instance/InstanceStore.sol +281 -0
  287. package/contracts/instance/base/BalanceStore.sol +118 -0
  288. package/contracts/instance/base/Cloneable.sol +51 -0
  289. package/contracts/instance/base/ObjectCounter.sol +21 -0
  290. package/contracts/instance/base/ObjectManager.sol +82 -0
  291. package/contracts/instance/module/IAccess.sol +29 -21
  292. package/contracts/instance/module/IBundle.sol +8 -7
  293. package/contracts/instance/module/IComponents.sol +52 -0
  294. package/contracts/instance/module/IDistribution.sol +7 -4
  295. package/contracts/instance/module/IPolicy.sol +56 -17
  296. package/contracts/instance/module/IRisk.sol +1 -1
  297. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  298. package/contracts/oracle/IOracle.sol +20 -0
  299. package/contracts/oracle/IOracleComponent.sol +16 -0
  300. package/contracts/oracle/IOracleService.sol +42 -0
  301. package/contracts/oracle/Oracle.sol +122 -0
  302. package/contracts/oracle/OracleService.sol +191 -0
  303. package/contracts/oracle/OracleServiceManager.sol +42 -0
  304. package/contracts/pool/BundleService.sol +296 -0
  305. package/contracts/pool/BundleServiceManager.sol +42 -0
  306. package/contracts/pool/IBundleService.sol +106 -0
  307. package/contracts/pool/IPoolComponent.sol +112 -0
  308. package/contracts/pool/IPoolService.sol +150 -0
  309. package/contracts/pool/Pool.sol +299 -0
  310. package/contracts/pool/PoolService.sol +453 -0
  311. package/contracts/pool/PoolServiceManager.sol +42 -0
  312. package/contracts/product/ApplicationService.sol +254 -0
  313. package/contracts/product/ApplicationServiceManager.sol +38 -0
  314. package/contracts/product/ClaimService.sol +442 -0
  315. package/contracts/product/ClaimServiceManager.sol +38 -0
  316. package/contracts/product/IApplicationService.sol +62 -0
  317. package/contracts/product/IClaimService.sol +93 -0
  318. package/contracts/product/IPolicyService.sol +78 -0
  319. package/contracts/product/IPricingService.sol +39 -0
  320. package/contracts/product/IProductComponent.sol +42 -0
  321. package/contracts/product/IProductService.sol +33 -0
  322. package/contracts/product/PolicyService.sol +475 -0
  323. package/contracts/product/PolicyServiceManager.sol +42 -0
  324. package/contracts/product/PricingService.sol +301 -0
  325. package/contracts/product/PricingServiceManager.sol +42 -0
  326. package/contracts/product/Product.sol +377 -0
  327. package/contracts/product/ProductService.sol +124 -0
  328. package/contracts/product/ProductServiceManager.sol +42 -0
  329. package/contracts/registry/ChainNft.sol +15 -0
  330. package/contracts/registry/IRegistry.sol +75 -45
  331. package/contracts/registry/IRegistryService.sol +52 -16
  332. package/contracts/registry/ITransferInterceptor.sol +1 -0
  333. package/contracts/registry/Registry.sol +368 -281
  334. package/contracts/registry/RegistryAdmin.sol +237 -0
  335. package/contracts/registry/RegistryService.sol +124 -257
  336. package/contracts/registry/RegistryServiceManager.sol +24 -46
  337. package/contracts/registry/ReleaseManager.sol +599 -0
  338. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  339. package/contracts/registry/TokenRegistry.sol +261 -57
  340. package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +276 -232
  341. package/contracts/shared/AccessManagerExtended.sol +470 -0
  342. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  343. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  344. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  345. package/contracts/shared/Component.sol +281 -0
  346. package/contracts/shared/ComponentService.sol +618 -0
  347. package/contracts/shared/ComponentServiceManager.sol +35 -0
  348. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  349. package/contracts/shared/ERC165.sol +15 -13
  350. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  351. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  352. package/contracts/shared/IComponent.sol +70 -0
  353. package/contracts/shared/IComponentService.sol +102 -0
  354. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  355. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  356. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  357. package/contracts/shared/INftOwnable.sol +13 -12
  358. package/contracts/shared/IPolicyHolder.sol +45 -0
  359. package/contracts/shared/IRegisterable.sol +4 -6
  360. package/contracts/shared/IRegistryLinked.sol +11 -0
  361. package/contracts/shared/IService.sol +8 -5
  362. package/contracts/shared/IVersionable.sol +5 -48
  363. package/contracts/shared/InitializableCustom.sol +177 -0
  364. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  365. package/contracts/shared/KeyValueStore.sol +127 -0
  366. package/contracts/{instance/base → shared}/Lifecycle.sol +35 -7
  367. package/contracts/shared/NftIdSetManager.sol +65 -0
  368. package/contracts/shared/NftOwnable.sol +60 -89
  369. package/contracts/shared/PolicyHolder.sol +102 -0
  370. package/contracts/shared/ProxyManager.sol +131 -26
  371. package/contracts/shared/Registerable.sol +26 -41
  372. package/contracts/shared/RegistryLinked.sol +43 -0
  373. package/contracts/shared/Service.sol +47 -24
  374. package/contracts/shared/TokenHandler.sol +37 -6
  375. package/contracts/shared/Versionable.sol +4 -92
  376. package/contracts/staking/IStaking.sol +168 -0
  377. package/contracts/staking/IStakingService.sol +149 -0
  378. package/contracts/staking/StakeManagerLib.sol +179 -0
  379. package/contracts/staking/Staking.sol +551 -0
  380. package/contracts/staking/StakingManager.sol +54 -0
  381. package/contracts/staking/StakingReader.sol +187 -0
  382. package/contracts/staking/StakingService.sol +406 -0
  383. package/contracts/staking/StakingServiceManager.sol +45 -0
  384. package/contracts/staking/StakingStore.sol +572 -0
  385. package/contracts/staking/TargetManagerLib.sol +207 -0
  386. package/contracts/{types → type}/AddressSet.sol +1 -1
  387. package/contracts/type/Amount.sol +128 -0
  388. package/contracts/{types → type}/Blocknumber.sol +21 -3
  389. package/contracts/type/ClaimId.sol +75 -0
  390. package/contracts/{types → type}/DistributorType.sol +2 -2
  391. package/contracts/{types → type}/Fee.sol +33 -23
  392. package/contracts/{types → type}/NftId.sol +21 -15
  393. package/contracts/type/NftIdSet.sol +62 -0
  394. package/contracts/{types → type}/ObjectType.sol +32 -16
  395. package/contracts/type/PayoutId.sol +82 -0
  396. package/contracts/{types → type}/Referral.sol +5 -1
  397. package/contracts/type/RequestId.sol +75 -0
  398. package/contracts/{types → type}/RiskId.sol +1 -1
  399. package/contracts/type/RoleId.sol +146 -0
  400. package/contracts/type/Seconds.sol +81 -0
  401. package/contracts/{types → type}/StateId.sol +30 -4
  402. package/contracts/{types → type}/Timestamp.sol +18 -13
  403. package/contracts/{types → type}/UFixed.sol +1 -0
  404. package/contracts/{types → type}/Version.sol +2 -1
  405. package/package.json +3 -3
  406. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  407. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  408. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -670
  409. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  410. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  411. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  412. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -204
  413. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  414. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  415. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  416. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  417. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  418. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -790
  419. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  420. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  421. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  423. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  425. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  427. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  429. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  431. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  433. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  435. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  437. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  438. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  439. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  440. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  441. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  442. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  444. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  446. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  448. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  450. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  452. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  454. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  456. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  458. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  460. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  461. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  462. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  463. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  464. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  465. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  466. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  468. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  469. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  470. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  471. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  472. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  473. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  474. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  475. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  476. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  479. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -641
  481. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  483. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  485. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  487. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  488. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  489. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  490. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  491. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  492. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  493. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  494. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  495. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  496. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  497. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  499. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  500. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  501. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  502. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  503. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  504. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  505. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  506. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  507. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  508. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  510. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  512. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  513. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  514. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  515. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  516. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  518. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  519. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  520. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  521. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  522. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  523. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  524. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  525. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  526. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  527. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  528. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  529. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  531. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  534. package/contracts/components/BaseComponent.sol +0 -91
  535. package/contracts/components/Distribution.sol +0 -166
  536. package/contracts/components/IBaseComponent.sol +0 -25
  537. package/contracts/components/IDistributionComponent.sol +0 -46
  538. package/contracts/components/IPoolComponent.sol +0 -62
  539. package/contracts/components/IProductComponent.sol +0 -35
  540. package/contracts/components/Pool.sol +0 -258
  541. package/contracts/components/Product.sol +0 -297
  542. package/contracts/experiment/cloning/Cloner.sol +0 -47
  543. package/contracts/experiment/errors/Require.sol +0 -38
  544. package/contracts/experiment/errors/Revert.sol +0 -44
  545. package/contracts/experiment/inheritance/A.sol +0 -53
  546. package/contracts/experiment/inheritance/B.sol +0 -28
  547. package/contracts/experiment/inheritance/C.sol +0 -34
  548. package/contracts/experiment/inheritance/IA.sol +0 -13
  549. package/contracts/experiment/inheritance/IB.sol +0 -10
  550. package/contracts/experiment/inheritance/IC.sol +0 -12
  551. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  552. package/contracts/experiment/statemachine/ISM.sol +0 -25
  553. package/contracts/experiment/statemachine/SM.sol +0 -57
  554. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  555. package/contracts/experiment/types/TypeA.sol +0 -47
  556. package/contracts/experiment/types/TypeB.sol +0 -29
  557. package/contracts/instance/AccessManagedSimple.sol +0 -115
  558. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  559. package/contracts/instance/InstanceAccessManager.sol +0 -288
  560. package/contracts/instance/base/ComponentServiceBase.sol +0 -39
  561. package/contracts/instance/base/IInstanceBase.sol +0 -23
  562. package/contracts/instance/base/KeyValueStore.sol +0 -172
  563. package/contracts/instance/module/ISetup.sol +0 -43
  564. package/contracts/instance/module/ITreasury.sol +0 -23
  565. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  566. package/contracts/instance/service/DistributionService.sol +0 -96
  567. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  568. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  569. package/contracts/instance/service/IDistributionService.sol +0 -12
  570. package/contracts/instance/service/IPoolService.sol +0 -37
  571. package/contracts/instance/service/IProductService.sol +0 -107
  572. package/contracts/shared/ContractDeployerLib.sol +0 -72
  573. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  574. package/contracts/test/TestFee.sol +0 -25
  575. package/contracts/test/TestRegisterable.sol +0 -18
  576. package/contracts/test/TestRoleId.sol +0 -14
  577. package/contracts/test/TestService.sol +0 -24
  578. package/contracts/test/TestToken.sol +0 -26
  579. package/contracts/test/TestVersion.sol +0 -44
  580. package/contracts/test/TestVersionable.sol +0 -17
  581. package/contracts/types/ChainId.sol +0 -38
  582. package/contracts/types/NftIdSet.sol +0 -60
  583. package/contracts/types/NumberId.sol +0 -52
  584. package/contracts/types/RoleId.sol +0 -88
  585. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,377 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {ClaimId} from "../type/ClaimId.sol";
8
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
+ import {Fee, FeeLib} from "../type/Fee.sol";
10
+ import {IRisk} from "../instance/module/IRisk.sol";
11
+ import {IApplicationService} from "./IApplicationService.sol";
12
+ import {IComponentService} from "../shared/IComponentService.sol";
13
+ import {IPolicyService} from "./IPolicyService.sol";
14
+ import {IProductService} from "./IProductService.sol";
15
+ import {IClaimService} from "./IClaimService.sol";
16
+ import {IPricingService} from "./IPricingService.sol";
17
+ import {IProductComponent} from "./IProductComponent.sol";
18
+ import {NftId, NftIdLib} from "../type/NftId.sol";
19
+ import {PayoutId} from "../type/PayoutId.sol";
20
+ import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
21
+ import {ReferralId} from "../type/Referral.sol";
22
+ import {RiskId, RiskIdLib} from "../type/RiskId.sol";
23
+ import {Seconds} from "../type/Seconds.sol";
24
+ import {StateId} from "../type/StateId.sol";
25
+ import {Timestamp} from "../type/Timestamp.sol";
26
+
27
+ import {TokenHandler} from "../shared/TokenHandler.sol";
28
+
29
+ import {InstanceReader} from "../instance/InstanceReader.sol";
30
+ import {IPolicy} from "../instance/module/IPolicy.sol";
31
+ import {IComponents} from "../instance/module/IComponents.sol";
32
+ import {Pool} from "../pool/Pool.sol";
33
+ import {Distribution} from "../distribution/Distribution.sol";
34
+
35
+ abstract contract Product is
36
+ InstanceLinkedComponent,
37
+ IProductComponent
38
+ {
39
+ // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Product")) - 1)) & ~bytes32(uint256(0xff));
40
+ bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
41
+
42
+ struct ProductStorage {
43
+ IProductService _productService;
44
+ IApplicationService _applicationService;
45
+ IPolicyService _policyService;
46
+ IClaimService _claimService;
47
+ IPricingService _pricingService;
48
+ IComponentService _componentService;
49
+ NftId _poolNftId;
50
+ NftId _distributionNftId;
51
+ Pool _pool;
52
+ Distribution _distribution;
53
+ }
54
+
55
+ function initializeProduct(
56
+ address registry,
57
+ NftId instanceNftId,
58
+ address initialOwner,
59
+ string memory name,
60
+ address token,
61
+ bool isInterceptor,
62
+ address pool,
63
+ address distribution,
64
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
65
+ bytes memory componentData // writeonly data that will saved in the object info record of the registry
66
+ )
67
+ public
68
+ virtual
69
+ onlyInitializing()
70
+ {
71
+ initializeInstanceLinkedComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData, componentData);
72
+
73
+ ProductStorage storage $ = _getProductStorage();
74
+ // TODO add validation
75
+ // TODO refactor to go via registry ?
76
+ $._productService = IProductService(_getServiceAddress(PRODUCT()));
77
+ $._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
78
+ $._policyService = IPolicyService(_getServiceAddress(POLICY()));
79
+ $._claimService = IClaimService(_getServiceAddress(CLAIM()));
80
+ $._pricingService = IPricingService(_getServiceAddress(PRICE()));
81
+ $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
82
+ $._pool = Pool(pool);
83
+ $._distribution = Distribution(distribution);
84
+ $._poolNftId = getRegistry().getNftId(pool);
85
+ $._distributionNftId = getRegistry().getNftId(distribution);
86
+
87
+ registerInterface(type(IProductComponent).interfaceId);
88
+ }
89
+
90
+
91
+ function register()
92
+ external
93
+ virtual
94
+ onlyOwner()
95
+ {
96
+ _getProductStorage()._componentService.registerProduct();
97
+ }
98
+
99
+
100
+ function setFees(
101
+ Fee memory productFee,
102
+ Fee memory processingFee
103
+ )
104
+ external
105
+ onlyOwner
106
+ restricted()
107
+ override
108
+ {
109
+ _getProductStorage()._componentService.setProductFees(productFee, processingFee);
110
+ }
111
+
112
+ function _createRisk(
113
+ RiskId id,
114
+ bytes memory data
115
+ ) internal {
116
+ _getProductService().createRisk(
117
+ id,
118
+ data
119
+ );
120
+ }
121
+
122
+ function _updateRisk(
123
+ RiskId id,
124
+ bytes memory data
125
+ ) internal {
126
+ _getProductService().updateRisk(
127
+ id,
128
+ data
129
+ );
130
+ }
131
+
132
+ function _updateRiskState(
133
+ RiskId id,
134
+ StateId state
135
+ ) internal {
136
+ _getProductService().updateRiskState(
137
+ id,
138
+ state
139
+ );
140
+ }
141
+
142
+ function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
143
+ return getInstance().getInstanceReader().getRiskInfo(id);
144
+ }
145
+
146
+ function _createApplication(
147
+ address applicationOwner,
148
+ RiskId riskId,
149
+ Amount sumInsuredAmount,
150
+ Seconds lifetime,
151
+ NftId bundleNftId,
152
+ ReferralId referralId,
153
+ bytes memory applicationData
154
+ )
155
+ internal
156
+ returns (NftId applicationNftId)
157
+ {
158
+ return _getProductStorage()._applicationService.create(
159
+ applicationOwner,
160
+ riskId,
161
+ sumInsuredAmount,
162
+ lifetime,
163
+ bundleNftId,
164
+ referralId,
165
+ applicationData
166
+ );
167
+ }
168
+
169
+ function _collateralize(
170
+ NftId policyNftId,
171
+ bool requirePremiumPayment,
172
+ Timestamp activateAt
173
+ )
174
+ internal
175
+ {
176
+ _getProductStorage()._policyService.collateralize(
177
+ policyNftId,
178
+ requirePremiumPayment,
179
+ activateAt);
180
+ }
181
+
182
+ function _collectPremium(
183
+ NftId policyNftId,
184
+ Timestamp activateAt
185
+ )
186
+ internal
187
+ {
188
+ _getProductStorage()._policyService.collectPremium(
189
+ policyNftId,
190
+ activateAt);
191
+ }
192
+
193
+ function _activate(
194
+ NftId policyNftId,
195
+ Timestamp activateAt
196
+ )
197
+ internal
198
+ {
199
+ _getProductStorage()._policyService.activate(
200
+ policyNftId,
201
+ activateAt);
202
+ }
203
+
204
+ function _close(
205
+ NftId policyNftId
206
+ )
207
+ internal
208
+ {
209
+ _getProductStorage()._policyService.close(
210
+ policyNftId);
211
+ }
212
+
213
+ function _submitClaim(
214
+ NftId policyNftId,
215
+ Amount claimAmount,
216
+ bytes memory claimData
217
+ )
218
+ internal
219
+ returns(ClaimId)
220
+ {
221
+ return _getProductStorage()._claimService.submit(
222
+ policyNftId,
223
+ claimAmount,
224
+ claimData);
225
+ }
226
+
227
+ function _confirmClaim(
228
+ NftId policyNftId,
229
+ ClaimId claimId,
230
+ Amount confirmedAmount,
231
+ bytes memory data
232
+ )
233
+ internal
234
+ {
235
+ _getProductStorage()._claimService.confirm(
236
+ policyNftId,
237
+ claimId,
238
+ confirmedAmount,
239
+ data);
240
+ }
241
+
242
+ function _declineClaim(
243
+ NftId policyNftId,
244
+ ClaimId claimId,
245
+ bytes memory data
246
+ )
247
+ internal
248
+ {
249
+ _getProductStorage()._claimService.decline(
250
+ policyNftId,
251
+ claimId,
252
+ data);
253
+ }
254
+
255
+ function _closeClaim(
256
+ NftId policyNftId,
257
+ ClaimId claimId
258
+ )
259
+ internal
260
+ {
261
+ _getProductStorage()._claimService.close(
262
+ policyNftId,
263
+ claimId);
264
+ }
265
+
266
+ function _createPayout(
267
+ NftId policyNftId,
268
+ ClaimId claimId,
269
+ Amount amount,
270
+ bytes memory data
271
+ )
272
+ internal
273
+ returns (PayoutId)
274
+ {
275
+ return _getProductStorage()._claimService.createPayout(
276
+ policyNftId,
277
+ claimId,
278
+ amount,
279
+ data);
280
+ }
281
+
282
+ function _processPayout(
283
+ NftId policyNftId,
284
+ PayoutId payoutId
285
+ )
286
+ internal
287
+ {
288
+ _getProductStorage()._claimService.processPayout(
289
+ policyNftId,
290
+ payoutId);
291
+ }
292
+
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
+ function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
365
+ return RiskIdLib.toRiskId(riskName);
366
+ }
367
+
368
+ function _getProductStorage() private pure returns (ProductStorage storage $) {
369
+ assembly {
370
+ $.slot := PRODUCT_STORAGE_LOCATION_V1
371
+ }
372
+ }
373
+
374
+ function _getProductService() internal view returns (IProductService) {
375
+ return _getProductStorage()._productService;
376
+ }
377
+ }
@@ -0,0 +1,124 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
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
+ 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";
14
+ 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";
21
+
22
+ import {Timestamp, zeroTimestamp} from "../type/Timestamp.sol";
23
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
24
+ import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
25
+ 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";
30
+ import {RiskId} from "../type/RiskId.sol";
31
+ 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
+ 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
+
44
+ contract ProductService is
45
+ ComponentVerifyingService,
46
+ IProductService
47
+ {
48
+ IInstanceService private _instanceService;
49
+ IPoolService internal _poolService;
50
+ IRegistryService private _registryService;
51
+
52
+ event LogProductServiceSender(address sender);
53
+
54
+ function _initialize(
55
+ address owner,
56
+ bytes memory data
57
+ )
58
+ internal
59
+ initializer
60
+ virtual override
61
+ {
62
+ (
63
+ address registryAddress,,
64
+ //address managerAddress
65
+ address authority
66
+ ) = abi.decode(data, (address, address, address));
67
+
68
+ initializeService(registryAddress, authority, owner);
69
+
70
+ _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
71
+ _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
72
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
73
+
74
+ registerInterface(type(IProductService).interfaceId);
75
+ }
76
+
77
+
78
+ function getDomain() public pure override returns(ObjectType) {
79
+ return PRODUCT();
80
+ }
81
+
82
+
83
+ function createRisk(
84
+ RiskId riskId,
85
+ bytes memory data
86
+ )
87
+ external
88
+ override
89
+ {
90
+ (NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
91
+ IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo(productNftId, data);
92
+
93
+ instance.getInstanceStore().createRisk(
94
+ riskId,
95
+ riskInfo
96
+ );
97
+ }
98
+
99
+
100
+ function updateRisk(
101
+ RiskId riskId,
102
+ bytes memory data
103
+ )
104
+ external
105
+ {
106
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
107
+ InstanceReader instanceReader = instance.getInstanceReader();
108
+
109
+ IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
110
+ riskInfo.data = data;
111
+ instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
112
+ }
113
+
114
+
115
+ function updateRiskState(
116
+ RiskId riskId,
117
+ StateId state
118
+ )
119
+ external
120
+ {
121
+ (,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
122
+ instance.getInstanceStore().updateRiskState(riskId, state);
123
+ }
124
+ }
@@ -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 {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
+
11
+ contract ProductServiceManager is ProxyManager {
12
+
13
+ ProductService private _productService;
14
+
15
+ /// @dev initializes proxy manager with product service implementation
16
+ constructor(
17
+ address authority,
18
+ address registryAddress,
19
+ bytes32 salt
20
+ )
21
+ ProxyManager(registryAddress)
22
+ {
23
+ ProductService svc = new ProductService{salt: salt}();
24
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
25
+ IVersionable versionable = deployDetermenistic(
26
+ address(svc),
27
+ data,
28
+ salt);
29
+
30
+ _productService = ProductService(address(versionable));
31
+ }
32
+
33
+ //--- view functions ----------------------------------------------------//
34
+ function getProductService()
35
+ external
36
+ view
37
+ returns (ProductService productService)
38
+ {
39
+ return _productService;
40
+ }
41
+
42
+ }
@@ -15,6 +15,7 @@ contract ChainNft is ERC721Enumerable {
15
15
  uint256 public constant PROTOCOL_NFT_ID = 1101;
16
16
  uint256 public constant GLOBAL_REGISTRY_ID = 2101;
17
17
 
18
+ // TODO rename errors to error pattern: CallerNotRegistry -> ErrorCallerNotRegistry etc.
18
19
  // custom errors
19
20
  error CallerNotRegistry(address caller);
20
21
  error RegistryAddressZero();
@@ -59,6 +60,12 @@ contract ChainNft is ERC721Enumerable {
59
60
  }
60
61
 
61
62
  _chainIdMultiplier = 10 ** _chainIdDigits;
63
+
64
+ // the first object registered through normal registration starts with id 4
65
+ // 1 -> protocol
66
+ // 2 -> registry
67
+ // 3 -> staking
68
+ // >= 4 -> all other objects
62
69
  _idNext = 4;
63
70
  }
64
71
 
@@ -95,6 +102,10 @@ contract ChainNft is ERC721Enumerable {
95
102
 
96
103
  _totalMinted++;
97
104
  _safeMint(to, tokenId);
105
+
106
+ if(interceptor != address(0)) {
107
+ ITransferInterceptor(interceptor).nftMint(to, tokenId);
108
+ }
98
109
  }
99
110
 
100
111
 
@@ -195,6 +206,10 @@ contract ChainNft is ERC721Enumerable {
195
206
  _chainIdDigits;
196
207
  }
197
208
 
209
+ function getNextTokenId() external view returns (uint256) {
210
+ return calculateTokenId(_idNext);
211
+ }
212
+
198
213
  function _getNextTokenId() private returns (uint256 id) {
199
214
  id = calculateTokenId(_idNext);
200
215
  _idNext++;