@etherisc/gif-next 0.0.2-b3e9a44-364 → 0.0.2-b43fece-589

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 (365) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
  3. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -13
  9. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  11. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  13. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  14. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  15. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  17. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  18. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +138 -94
  19. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
  21. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +78 -58
  23. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +120 -86
  25. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +64 -60
  27. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +65 -58
  29. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -0
  31. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  32. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  33. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +119 -135
  34. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  35. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +114 -22
  36. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  37. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +218 -159
  38. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +81 -25
  40. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  41. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  42. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +140 -96
  43. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  44. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +121 -77
  45. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  46. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +197 -145
  47. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +508 -177
  49. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  50. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +37 -31
  53. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  54. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +13 -84
  55. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  56. package/artifacts/contracts/instance/Instance.sol/Instance.json +46 -40
  57. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  58. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
  59. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  60. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
  61. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +94 -79
  63. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -130
  65. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -40
  67. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +174 -103
  69. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  72. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  74. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  76. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +119 -75
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +60 -53
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -9
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +73 -53
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +70 -47
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +32 -36
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -81
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +125 -119
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +57 -69
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -15
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +60 -92
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +90 -88
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -92
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +149 -158
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -52
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -32
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +29 -33
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +118 -54
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -88
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +56 -60
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  131. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +70 -57
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +105 -54
  140. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +13 -0
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +80 -62
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -49
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +133 -115
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +42 -46
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  151. package/artifacts/contracts/product/Product.sol/Product.json +118 -54
  152. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  153. package/artifacts/contracts/product/RiskService.sol/RiskService.json +44 -26
  154. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +26 -30
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -15
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +98 -35
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +38 -53
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +129 -61
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -29
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +121 -223
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  180. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  181. package/artifacts/contracts/shared/Component.sol/Component.json +52 -28
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +334 -155
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +67 -63
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +26 -0
  188. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  189. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +39 -28
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +305 -19
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +60 -53
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  200. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +13 -0
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  207. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  208. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  209. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +73 -53
  210. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  211. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  212. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  214. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  215. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  216. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  217. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  218. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +50 -8
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +26 -0
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  227. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  228. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +39 -28
  229. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +13 -0
  231. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  233. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  234. package/artifacts/contracts/staking/Staking.sol/Staking.json +122 -78
  235. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  237. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +52 -42
  239. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  241. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +50 -32
  243. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +29 -33
  245. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
  247. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  248. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  249. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  250. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  256. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  258. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  264. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  266. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  271. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  277. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  278. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  279. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +12 -12
  280. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  281. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  282. package/contracts/authorization/AccessAdmin.sol +65 -61
  283. package/contracts/authorization/Authorization.sol +106 -38
  284. package/contracts/authorization/IAccess.sol +1 -0
  285. package/contracts/authorization/IAccessAdmin.sol +4 -2
  286. package/contracts/authorization/IAuthorization.sol +13 -7
  287. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  288. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  289. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  290. package/contracts/distribution/BasicDistribution.sol +0 -1
  291. package/contracts/distribution/Distribution.sol +4 -15
  292. package/contracts/distribution/DistributionService.sol +14 -7
  293. package/contracts/distribution/IDistributionComponent.sol +1 -1
  294. package/contracts/examples/fire/FirePool.sol +19 -8
  295. package/contracts/examples/fire/FireProduct.sol +32 -12
  296. package/contracts/examples/fire/FireProductAuthorization.sol +1 -2
  297. package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
  298. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  299. package/contracts/examples/unpermissioned/SimplePool.sol +11 -6
  300. package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
  301. package/contracts/instance/IInstance.sol +4 -1
  302. package/contracts/instance/IInstanceService.sol +0 -20
  303. package/contracts/instance/Instance.sol +20 -17
  304. package/contracts/instance/InstanceAdmin.sol +16 -27
  305. package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
  306. package/contracts/instance/InstanceService.sol +14 -68
  307. package/contracts/instance/module/IComponents.sol +7 -4
  308. package/contracts/oracle/BasicOracle.sol +0 -1
  309. package/contracts/oracle/IOracleService.sol +2 -1
  310. package/contracts/oracle/Oracle.sol +4 -15
  311. package/contracts/oracle/OracleService.sol +20 -14
  312. package/contracts/pool/BasicPool.sol +22 -12
  313. package/contracts/pool/BasicPoolAuthorization.sol +12 -2
  314. package/contracts/pool/BundleService.sol +63 -39
  315. package/contracts/pool/IBundleService.sol +2 -5
  316. package/contracts/pool/IPoolComponent.sol +1 -7
  317. package/contracts/pool/IPoolService.sol +23 -22
  318. package/contracts/pool/Pool.sol +111 -123
  319. package/contracts/pool/PoolService.sol +186 -128
  320. package/contracts/product/ApplicationService.sol +9 -1
  321. package/contracts/product/BasicProduct.sol +8 -12
  322. package/contracts/product/BasicProductAuthorization.sol +0 -1
  323. package/contracts/product/ClaimService.sol +82 -51
  324. package/contracts/product/IPricingService.sol +9 -9
  325. package/contracts/product/IProductComponent.sol +6 -0
  326. package/contracts/product/PolicyService.sol +15 -10
  327. package/contracts/product/PricingService.sol +7 -7
  328. package/contracts/product/Product.sol +51 -54
  329. package/contracts/registry/ChainNft.sol +6 -9
  330. package/contracts/registry/IRegistry.sol +0 -3
  331. package/contracts/registry/IRegistryService.sol +6 -4
  332. package/contracts/registry/ITransferInterceptor.sol +1 -2
  333. package/contracts/registry/Registry.sol +6 -4
  334. package/contracts/registry/RegistryAdmin.sol +7 -23
  335. package/contracts/registry/RegistryService.sol +37 -55
  336. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  337. package/contracts/registry/ReleaseRegistry.sol +201 -191
  338. package/contracts/registry/ServiceAuthorizationV3.sol +20 -15
  339. package/contracts/shared/Component.sol +25 -21
  340. package/contracts/shared/ComponentService.sol +235 -131
  341. package/contracts/shared/ComponentVerifyingService.sol +22 -14
  342. package/contracts/shared/IComponent.sol +6 -2
  343. package/contracts/shared/IComponentService.sol +25 -13
  344. package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
  345. package/contracts/shared/ILifecycle.sol +3 -1
  346. package/contracts/shared/IRegisterable.sol +11 -0
  347. package/contracts/shared/InstanceLinkedComponent.sol +67 -25
  348. package/contracts/shared/KeyValueStore.sol +1 -1
  349. package/contracts/shared/Lifecycle.sol +15 -4
  350. package/contracts/shared/NftOwnable.sol +8 -4
  351. package/contracts/shared/Registerable.sol +15 -7
  352. package/contracts/shared/Service.sol +4 -7
  353. package/contracts/staking/Staking.sol +2 -3
  354. package/contracts/staking/StakingService.sol +14 -0
  355. package/contracts/type/RiskId.sol +1 -1
  356. package/contracts/type/RoleId.sol +0 -12
  357. package/contracts/type/StateId.sol +14 -1
  358. package/contracts/upgradeability/ProxyManager.sol +2 -1
  359. package/package.json +1 -1
  360. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  361. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  362. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  363. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  364. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  365. package/contracts/authorization/ModuleAuthorization.sol +0 -78
@@ -3,18 +3,21 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Amount, AmountLib} from "../type/Amount.sol";
5
5
  import {ClaimId} from "../type/ClaimId.sol";
6
- import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
6
+ import {IComponent} from "../shared/IComponent.sol";
7
7
  import {Fee, FeeLib} from "../type/Fee.sol";
8
8
  import {IRisk} from "../instance/module/IRisk.sol";
9
9
  import {IApplicationService} from "./IApplicationService.sol";
10
10
  import {IAuthorization} from "../authorization/IAuthorization.sol";
11
11
  import {IComponentService} from "../shared/IComponentService.sol";
12
+ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
13
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
12
14
  import {IPolicyService} from "./IPolicyService.sol";
13
15
  import {IRiskService} from "./IRiskService.sol";
14
16
  import {IClaimService} from "./IClaimService.sol";
15
17
  import {IPricingService} from "./IPricingService.sol";
16
18
  import {IProductComponent} from "./IProductComponent.sol";
17
- import {NftId} from "../type/NftId.sol";
19
+ import {NftId, NftIdLib} from "../type/NftId.sol";
20
+ import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
18
21
  import {PayoutId} from "../type/PayoutId.sol";
19
22
  import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
20
23
  import {ReferralId} from "../type/Referral.sol";
@@ -25,8 +28,9 @@ import {Timestamp} from "../type/Timestamp.sol";
25
28
 
26
29
  import {IPolicy} from "../instance/module/IPolicy.sol";
27
30
  import {IComponents} from "../instance/module/IComponents.sol";
28
- import {Pool} from "../pool/Pool.sol";
29
- import {Distribution} from "../distribution/Distribution.sol";
31
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
32
+ import {IOracleComponent} from "../oracle/IOracleComponent.sol";
33
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
30
34
 
31
35
  abstract contract Product is
32
36
  InstanceLinkedComponent,
@@ -36,26 +40,23 @@ abstract contract Product is
36
40
  bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
37
41
 
38
42
  struct ProductStorage {
43
+ IComponents.ProductInfo _productInfo;
44
+ IComponentService _componentService;
39
45
  IRiskService _riskService;
40
46
  IApplicationService _applicationService;
41
47
  IPolicyService _policyService;
42
48
  IClaimService _claimService;
43
49
  IPricingService _pricingService;
44
- IComponentService _componentService;
45
- NftId _poolNftId;
46
- NftId _distributionNftId;
47
- Pool _pool;
48
- Distribution _distribution;
49
50
  }
50
51
 
51
52
 
52
- function register()
53
+ function registerComponent(address component)
53
54
  external
54
55
  virtual
55
56
  onlyOwner()
57
+ returns (NftId componentNftId)
56
58
  {
57
- _getProductStorage()._componentService.registerProduct();
58
- _approveTokenHandler(type(uint256).max);
59
+ return _getProductStorage()._componentService.registerComponent(component);
59
60
  }
60
61
 
61
62
 
@@ -122,35 +123,18 @@ abstract contract Product is
122
123
  view
123
124
  returns (IComponents.ProductInfo memory poolInfo)
124
125
  {
125
- ProductStorage storage $ = _getProductStorage();
126
-
127
- return IComponents.ProductInfo({
128
- distributionNftId: $._distributionNftId,
129
- poolNftId: $._poolNftId,
130
- isProcessingFundedClaims: false,
131
- productFee: FeeLib.zero(),
132
- processingFee: FeeLib.zero(),
133
- distributionFee: FeeLib.zero(),
134
- minDistributionOwnerFee: FeeLib.zero(),
135
- poolFee: FeeLib.zero(),
136
- stakingFee: FeeLib.zero(),
137
- performanceFee: FeeLib.zero()
138
- });
126
+ return _getProductStorage()._productInfo;
139
127
  }
140
128
 
141
129
 
142
130
  function _initializeProduct(
143
131
  address registry,
144
132
  NftId instanceNftId,
145
- IAuthorization authorization,
146
- address initialOwner,
147
133
  string memory name,
148
134
  address token,
149
- bool isInterceptor,
150
- address pool, // switch to pool nft id (#527)
151
- address distribution, // switch to distribution nft id (#527)
152
- // add NftId [] oracleNftIds (#527)
153
- bytes memory registryData, // writeonly data that will saved in the object info record of the registry
135
+ IComponents.ProductInfo memory productInfo,
136
+ IAuthorization authorization,
137
+ address initialOwner,
154
138
  bytes memory componentData // writeonly data that will saved in the object info record of the registry
155
139
  )
156
140
  internal
@@ -164,24 +148,18 @@ abstract contract Product is
164
148
  token,
165
149
  PRODUCT(),
166
150
  authorization,
167
- isInterceptor,
151
+ productInfo.isInterceptingPolicyTransfers,
168
152
  initialOwner,
169
- registryData,
170
153
  componentData);
171
154
 
172
155
  ProductStorage storage $ = _getProductStorage();
173
- // TODO add validation
174
- // TODO refactor to go via registry for all components linked to this product (#527)
156
+ $._productInfo = productInfo;
175
157
  $._riskService = IRiskService(_getServiceAddress(PRODUCT()));
176
158
  $._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
177
159
  $._policyService = IPolicyService(_getServiceAddress(POLICY()));
178
160
  $._claimService = IClaimService(_getServiceAddress(CLAIM()));
179
161
  $._pricingService = IPricingService(_getServiceAddress(PRICE()));
180
162
  $._componentService = IComponentService(_getServiceAddress(COMPONENT()));
181
- $._pool = Pool(pool);
182
- $._distribution = Distribution(distribution);
183
- $._poolNftId = getRegistry().getNftIdForAddress(pool);
184
- $._distributionNftId = getRegistry().getNftIdForAddress(distribution);
185
163
 
186
164
  _registerInterface(type(IProductComponent).interfaceId);
187
165
  }
@@ -201,8 +179,11 @@ abstract contract Product is
201
179
  function _createRisk(
202
180
  RiskId id,
203
181
  bytes memory data
204
- ) internal {
205
- _getRiskService().createRisk(
182
+ )
183
+ internal
184
+ virtual
185
+ {
186
+ _getProductStorage()._riskService.createRisk(
206
187
  id,
207
188
  data
208
189
  );
@@ -211,8 +192,11 @@ abstract contract Product is
211
192
  function _updateRisk(
212
193
  RiskId id,
213
194
  bytes memory data
214
- ) internal {
215
- _getRiskService().updateRisk(
195
+ )
196
+ internal
197
+ virtual
198
+ {
199
+ _getProductStorage()._riskService.updateRisk(
216
200
  id,
217
201
  data
218
202
  );
@@ -221,15 +205,18 @@ abstract contract Product is
221
205
  function _updateRiskState(
222
206
  RiskId id,
223
207
  StateId state
224
- ) internal {
225
- _getRiskService().updateRiskState(
208
+ )
209
+ internal
210
+ virtual
211
+ {
212
+ _getProductStorage()._riskService.updateRiskState(
226
213
  id,
227
214
  state
228
215
  );
229
216
  }
230
217
 
231
218
 
232
- function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
219
+ function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
233
220
  return getInstance().getInstanceReader().getRiskInfo(id);
234
221
  }
235
222
 
@@ -245,6 +232,7 @@ abstract contract Product is
245
232
  bytes memory applicationData
246
233
  )
247
234
  internal
235
+ virtual
248
236
  returns (NftId applicationNftId)
249
237
  {
250
238
  return _getProductStorage()._applicationService.create(
@@ -264,6 +252,7 @@ abstract contract Product is
264
252
  Timestamp activateAt
265
253
  )
266
254
  internal
255
+ virtual
267
256
  {
268
257
  _getProductStorage()._policyService.createPolicy(
269
258
  applicationNftId,
@@ -274,6 +263,7 @@ abstract contract Product is
274
263
  NftId policyNftId
275
264
  )
276
265
  internal
266
+ virtual
277
267
  {
278
268
  _getProductStorage()._policyService.decline(
279
269
  policyNftId);
@@ -284,6 +274,7 @@ abstract contract Product is
284
274
  Timestamp expireAt
285
275
  )
286
276
  internal
277
+ virtual
287
278
  returns (Timestamp expiredAt)
288
279
  {
289
280
  expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
@@ -294,6 +285,7 @@ abstract contract Product is
294
285
  Timestamp activateAt
295
286
  )
296
287
  internal
288
+ virtual
297
289
  {
298
290
  _getProductStorage()._policyService.collectPremium(
299
291
  policyNftId,
@@ -305,6 +297,7 @@ abstract contract Product is
305
297
  Timestamp activateAt
306
298
  )
307
299
  internal
300
+ virtual
308
301
  {
309
302
  _getProductStorage()._policyService.activate(
310
303
  policyNftId,
@@ -315,6 +308,7 @@ abstract contract Product is
315
308
  NftId policyNftId
316
309
  )
317
310
  internal
311
+ virtual
318
312
  {
319
313
  _getProductStorage()._policyService.close(
320
314
  policyNftId);
@@ -326,6 +320,7 @@ abstract contract Product is
326
320
  bytes memory claimData
327
321
  )
328
322
  internal
323
+ virtual
329
324
  returns(ClaimId)
330
325
  {
331
326
  return _getProductStorage()._claimService.submit(
@@ -341,6 +336,7 @@ abstract contract Product is
341
336
  bytes memory data
342
337
  )
343
338
  internal
339
+ virtual
344
340
  {
345
341
  _getProductStorage()._claimService.confirm(
346
342
  policyNftId,
@@ -355,6 +351,7 @@ abstract contract Product is
355
351
  bytes memory data
356
352
  )
357
353
  internal
354
+ virtual
358
355
  {
359
356
  _getProductStorage()._claimService.decline(
360
357
  policyNftId,
@@ -367,6 +364,7 @@ abstract contract Product is
367
364
  ClaimId claimId
368
365
  )
369
366
  internal
367
+ virtual
370
368
  {
371
369
  _getProductStorage()._claimService.close(
372
370
  policyNftId,
@@ -380,6 +378,7 @@ abstract contract Product is
380
378
  bytes memory data
381
379
  )
382
380
  internal
381
+ virtual
383
382
  returns (PayoutId)
384
383
  {
385
384
  return _getProductStorage()._claimService.createPayout(
@@ -397,6 +396,7 @@ abstract contract Product is
397
396
  bytes memory data
398
397
  )
399
398
  internal
399
+ virtual
400
400
  returns (PayoutId)
401
401
  {
402
402
  return _getProductStorage()._claimService.createPayoutForBeneficiary(
@@ -412,23 +412,20 @@ abstract contract Product is
412
412
  PayoutId payoutId
413
413
  )
414
414
  internal
415
+ virtual
415
416
  {
416
417
  _getProductStorage()._claimService.processPayout(
417
418
  policyNftId,
418
419
  payoutId);
419
420
  }
420
421
 
421
- function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
422
+ function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
422
423
  return RiskIdLib.toRiskId(riskName);
423
424
  }
424
425
 
425
- function _getProductStorage() internal pure returns (ProductStorage storage $) {
426
+ function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
426
427
  assembly {
427
428
  $.slot := PRODUCT_STORAGE_LOCATION_V1
428
429
  }
429
430
  }
430
-
431
- function _getRiskService() internal view returns (IRiskService) {
432
- return _getProductStorage()._riskService;
433
- }
434
431
  }
@@ -104,10 +104,6 @@ contract ChainNft is ERC721Enumerable {
104
104
  }
105
105
 
106
106
  _safeMintWithInterceptorAddress(to, tokenId, interceptor);
107
-
108
- if(interceptor != address(0)) {
109
- ITransferInterceptor(interceptor).nftMint(to, tokenId);
110
- }
111
107
  }
112
108
 
113
109
 
@@ -115,11 +111,12 @@ contract ChainNft is ERC721Enumerable {
115
111
  * @dev amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id
116
112
  * this allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
117
113
  */
118
- function transferFrom(address from, address to, uint256 tokenId) public override (ERC721, IERC721) {
114
+ function transferFrom(address from, address to, uint256 tokenId) public override (IERC721, ERC721) {
119
115
  super.transferFrom(from, to, tokenId);
120
116
 
121
117
  if (_interceptor[tokenId] != address(0)) {
122
- ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId);
118
+ address operator = msg.sender;
119
+ ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId, operator);
123
120
  }
124
121
  }
125
122
 
@@ -241,10 +238,10 @@ contract ChainNft is ERC721Enumerable {
241
238
  address interceptor
242
239
  )
243
240
  private
244
- {
245
- emit LogTokenInterceptorAddress(tokenId, interceptor);
246
-
241
+ {
247
242
  _totalMinted++;
248
243
  _safeMint(to, tokenId);
244
+
245
+ emit LogTokenInterceptorAddress(tokenId, interceptor);
249
246
  }
250
247
  }
@@ -65,9 +65,6 @@ interface IRegistry is IERC165 {
65
65
  StateId state;
66
66
  VersionPart version;
67
67
  bytes32 salt;
68
- address[] addresses;
69
- string[] names;
70
- ObjectType[] domains;
71
68
  IServiceAuthorization auth;
72
69
  Timestamp activatedAt;
73
70
  Timestamp disabledAt;
@@ -21,10 +21,9 @@ interface IRegistryService is
21
21
 
22
22
  error ErrorRegistryServiceNotService(address notService);
23
23
  error ErrorRegistryServiceNotInstance(address notInstance);
24
- error ErrorRegistryServiceNotComponent(address notComponent);
25
24
  error ErrorRegistryServiceNotProduct(address notProduct);
26
- error ErrorRegistryServiceNotPool(address notPool);
27
- error ErrorRegistryServiceNotDistribution(address notDistribution);
25
+ error ErrorRegistryServiceNotComponent(address notComponent);
26
+ error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
28
27
 
29
28
  error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
30
29
  error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
@@ -47,7 +46,10 @@ interface IRegistryService is
47
46
  function registerInstance(IRegisterable instance, address owner)
48
47
  external returns(IRegistry.ObjectInfo memory info);
49
48
 
50
- function registerComponent(IComponent component, ObjectType objectType, address owner)
49
+ function registerProduct(IComponent product, address owner)
50
+ external returns(IRegistry.ObjectInfo memory info);
51
+
52
+ function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
51
53
  external returns(IRegistry.ObjectInfo memory info);
52
54
 
53
55
  function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
@@ -2,6 +2,5 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  interface ITransferInterceptor {
5
- function nftMint(address to, uint256 tokenId) external;
6
- function nftTransferFrom(address from, address to, uint256 tokenId) external;
5
+ function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external;
7
6
  }
@@ -699,13 +699,15 @@ contract Registry is
699
699
 
700
700
  // components with instance parent
701
701
  _coreContractCombinations[PRODUCT()][INSTANCE()] = true;
702
- _coreContractCombinations[DISTRIBUTION()][INSTANCE()] = true;
703
- _coreContractCombinations[ORACLE()][INSTANCE()] = true;
704
- _coreContractCombinations[POOL()][INSTANCE()] = true;
702
+
703
+ // components with product parent
704
+ _coreContractCombinations[DISTRIBUTION()][PRODUCT()] = true;
705
+ _coreContractCombinations[ORACLE()][PRODUCT()] = true;
706
+ _coreContractCombinations[POOL()][PRODUCT()] = true;
705
707
 
706
708
  // objects with component parents
707
- _coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
708
709
  _coreObjectCombinations[POLICY()][PRODUCT()] = true;
710
+ _coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
709
711
  _coreObjectCombinations[BUNDLE()][POOL()] = true;
710
712
 
711
713
  // staking
@@ -115,21 +115,6 @@ contract RegistryAdmin is
115
115
  address(service));
116
116
  }
117
117
 
118
- function revokeServiceRole(
119
- IService service,
120
- ObjectType domain,
121
- VersionPart version
122
- )
123
- external
124
- restricted()
125
- {
126
- _revokeRoleFromAccount(
127
- RoleIdLib.roleForTypeAndVersion(
128
- domain,
129
- version),
130
- address(service));
131
- }
132
-
133
118
  function grantServiceRoleForAllVersions(IService service, ObjectType domain)
134
119
  external
135
120
  restricted()
@@ -139,13 +124,11 @@ contract RegistryAdmin is
139
124
  address(service));
140
125
  }
141
126
 
142
- function revokeServiceRoleForAllVersions(IService service, ObjectType domain)
127
+ function setServiceLocked(IService service, bool locked)
143
128
  external
144
129
  restricted()
145
130
  {
146
- _revokeRoleFromAccount(
147
- RoleIdLib.roleForTypeAndAllVersions(domain),
148
- address(service));
131
+ _setTargetClosed(address(service), locked);
149
132
  }
150
133
 
151
134
  /*function transferAdmin(address to)
@@ -188,6 +171,8 @@ contract RegistryAdmin is
188
171
  true,
189
172
  false);
190
173
 
174
+ _setTargetClosed(address(service), true);
175
+
191
176
  // create service role
192
177
  RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
193
178
  serviceDomain,
@@ -330,12 +315,11 @@ contract RegistryAdmin is
330
315
  name: RELEASE_REGISTRY_ROLE_NAME}));
331
316
 
332
317
  FunctionInfo[] memory functions;
333
- functions = new FunctionInfo[](5);
318
+ functions = new FunctionInfo[](4);
334
319
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
335
320
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
336
- functions[2] = toFunction(RegistryAdmin.revokeServiceRoleForAllVersions.selector, "revokeServiceRoleForAllVersions");
337
- functions[3] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
338
- functions[4] = toFunction(RegistryAdmin.revokeServiceRole.selector, "revokeServiceRole");
321
+ functions[2] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
322
+ functions[3] = toFunction(RegistryAdmin.setServiceLocked.selector, "setServiceLocked");
339
323
  _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
340
324
 
341
325
  _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
@@ -18,8 +18,6 @@ contract RegistryService is
18
18
  Service,
19
19
  IRegistryService
20
20
  {
21
- using NftIdLib for NftId;
22
-
23
21
  // TODO update to real hash when registry is stable
24
22
  bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
25
23
 
@@ -60,7 +58,7 @@ contract RegistryService is
60
58
  function registerInstance(IRegisterable instance, address owner)
61
59
  external
62
60
  virtual
63
- restricted
61
+ restricted()
64
62
  returns(
65
63
  IRegistry.ObjectInfo memory info
66
64
  )
@@ -75,29 +73,33 @@ contract RegistryService is
75
73
  instance.linkToRegisteredNftId(); // asume safe
76
74
  }
77
75
 
78
- // function registerProduct(IComponent product, address owner)
79
- // external
80
- // restricted
81
- // returns(
82
- // IRegistry.ObjectInfo memory info
83
- // )
84
- // {
85
- // // CAN revert if no ERC165 support -> will revert with empty message
86
- // if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
87
- // revert ErrorRegistryServiceNotProduct(address(product));
88
- // }
89
-
90
- // info = _getAndVerifyContractInfo(product, PRODUCT(), owner);
91
- // info.nftId = getRegistry().register(info);
92
- // }
93
-
94
- function registerComponent(
76
+ function registerProduct(
77
+ IComponent product,
78
+ address initialOwner
79
+ )
80
+ external
81
+ virtual
82
+ restricted()
83
+ returns(
84
+ IRegistry.ObjectInfo memory info
85
+ )
86
+ {
87
+ if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
88
+ revert ErrorRegistryServiceNotProduct(address(product));
89
+ }
90
+
91
+ info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
92
+ info.nftId = getRegistry().register(info);
93
+ }
94
+
95
+ function registerProductLinkedComponent(
95
96
  IComponent component,
96
97
  ObjectType objectType,
97
98
  address initialOwner
98
99
  )
99
100
  external
100
- restricted
101
+ virtual
102
+ restricted()
101
103
  returns(
102
104
  IRegistry.ObjectInfo memory info
103
105
  )
@@ -107,43 +109,18 @@ contract RegistryService is
107
109
  revert ErrorRegistryServiceNotComponent(address(component));
108
110
  }
109
111
 
112
+ if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
113
+ revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
114
+ }
115
+
110
116
  info = _getAndVerifyContractInfo(component, objectType, initialOwner);
111
117
  info.nftId = getRegistry().register(info);
112
118
  }
113
119
 
114
- // function registerPool(IComponent pool, address owner)
115
- // external
116
- // restricted
117
- // returns(
118
- // IRegistry.ObjectInfo memory info
119
- // )
120
- // {
121
- // if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
122
- // revert ErrorRegistryServiceNotPool(address(pool));
123
- // }
124
-
125
- // info = _getAndVerifyContractInfo(pool, POOL(), owner);
126
- // info.nftId = getRegistry().register(info);
127
- // }
128
-
129
- // function registerDistribution(IComponent distribution, address owner)
130
- // external
131
- // restricted
132
- // returns(
133
- // IRegistry.ObjectInfo memory info
134
- // )
135
- // {
136
- // if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
137
- // revert ErrorRegistryServiceNotDistribution(address(distribution));
138
- // }
139
-
140
- // info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
141
- // info.nftId = getRegistry().register(info);
142
- // }
143
-
144
120
  function registerDistributor(IRegistry.ObjectInfo memory info)
145
121
  external
146
- restricted
122
+ virtual
123
+ restricted()
147
124
  returns(NftId nftId)
148
125
  {
149
126
  _verifyObjectInfo(info, DISTRIBUTOR());
@@ -152,7 +129,8 @@ contract RegistryService is
152
129
 
153
130
  function registerPolicy(IRegistry.ObjectInfo memory info)
154
131
  external
155
- restricted
132
+ virtual
133
+ restricted()
156
134
  returns(NftId nftId)
157
135
  {
158
136
  _verifyObjectInfo(info, POLICY());
@@ -161,7 +139,8 @@ contract RegistryService is
161
139
 
162
140
  function registerBundle(IRegistry.ObjectInfo memory info)
163
141
  external
164
- restricted
142
+ virtual
143
+ restricted()
165
144
  returns(NftId nftId)
166
145
  {
167
146
  _verifyObjectInfo(info, BUNDLE());
@@ -170,7 +149,8 @@ contract RegistryService is
170
149
 
171
150
  function registerStake(IRegistry.ObjectInfo memory info)
172
151
  external
173
- restricted
152
+ virtual
153
+ restricted()
174
154
  returns(NftId nftId)
175
155
  {
176
156
  _verifyObjectInfo(info, STAKE());
@@ -185,6 +165,7 @@ contract RegistryService is
185
165
  address expectedOwner // assume can be 0 when given by other service
186
166
  )
187
167
  internal
168
+ virtual
188
169
  view
189
170
  returns(
190
171
  IRegistry.ObjectInfo memory info
@@ -224,6 +205,7 @@ contract RegistryService is
224
205
  ObjectType expectedType
225
206
  )
226
207
  internal
208
+ virtual
227
209
  view
228
210
  {
229
211
  if(info.objectAddress > address(0)) {
@@ -2,7 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {RELEASE} from "../type/ObjectType.sol";
5
- import {SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED/*, FREE*/} from "../type/StateId.sol";
5
+ import {SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
6
6
  import {Lifecycle} from "../shared/Lifecycle.sol";
7
7
 
8
8
  contract ReleaseLifecycle is
@@ -18,9 +18,12 @@ contract ReleaseLifecycle is
18
18
  {
19
19
  setInitialState(RELEASE(), SCHEDULED());
20
20
 
21
+ setStateTransition(RELEASE(), SCHEDULED(), SKIPPED());
21
22
  setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
22
- setStateTransition(RELEASE(), DEPLOYING(), DEPLOYING());
23
- setStateTransition(RELEASE(), DEPLOYING(), ACTIVE());
23
+ setStateTransition(RELEASE(), DEPLOYING(), SKIPPED());
24
+ setStateTransition(RELEASE(), DEPLOYING(), DEPLOYED());
25
+ setStateTransition(RELEASE(), DEPLOYED(), SKIPPED());
26
+ setStateTransition(RELEASE(), DEPLOYED(), ACTIVE());
24
27
  setStateTransition(RELEASE(), ACTIVE(), PAUSED());
25
28
  setStateTransition(RELEASE(), PAUSED(), ACTIVE());
26
29
  }