@etherisc/gif-next 0.0.2-91b514c-961 → 0.0.2-9272c43-568

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 (351) hide show
  1. package/README.md +1 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +34 -18
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +18 -10
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +267 -97
  9. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +652 -36
  11. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -47
  15. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  16. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +175 -27
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +85 -12
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  22. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  24. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +23 -7
  26. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +221 -60
  28. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +203 -118
  32. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +88 -44
  34. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +20 -4
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +220 -59
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +34 -18
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +220 -59
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +27 -11
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +220 -59
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +2 -2
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +24 -8
  55. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +220 -59
  57. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +24 -8
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +220 -59
  61. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  62. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  63. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  64. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +310 -32
  65. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +182 -0
  67. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  68. package/artifacts/contracts/instance/Instance.sol/Instance.json +322 -72
  69. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +608 -295
  71. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +242 -56
  73. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +477 -289
  75. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +208 -26
  77. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +14 -14
  79. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +68 -12
  81. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  82. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
  83. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  85. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  87. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  88. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
  94. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  99. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  101. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +2 -2
  102. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +234 -56
  104. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +54 -38
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +28 -20
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +220 -59
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +122 -90
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +62 -30
  119. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  121. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  123. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  124. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +104 -22
  125. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +98 -66
  127. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +50 -34
  129. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -58
  131. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +26 -14
  133. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  134. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  135. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +220 -59
  136. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  137. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +92 -76
  138. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  139. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +47 -39
  140. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  141. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  143. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  145. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  146. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  147. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +94 -86
  148. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  149. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +508 -18
  150. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +48 -44
  152. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  153. package/artifacts/contracts/product/PricingService.sol/PricingService.json +64 -72
  154. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  155. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +33 -21
  156. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  157. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  158. package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
  159. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  160. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +2 -2
  161. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  162. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  164. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  166. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  168. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +378 -249
  170. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +243 -68
  172. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  174. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +10 -10
  176. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +384 -186
  178. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  179. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  180. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +128 -76
  182. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  183. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  184. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  185. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  186. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  188. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +54 -54
  189. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +28 -28
  191. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +16 -45
  193. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  196. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  198. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  200. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  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/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  207. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  210. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  211. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  212. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  214. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  216. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  218. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  219. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  220. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  221. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  222. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  223. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  224. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  225. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  226. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  228. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +3 -3
  229. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  230. package/artifacts/contracts/staking/Staking.sol/Staking.json +22 -6
  231. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
  232. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  234. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  236. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +12 -4
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  238. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  240. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +31 -15
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  242. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +15 -7
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  246. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
  247. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  252. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  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/Key32.sol/Key32Lib.json +2 -2
  257. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  258. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  259. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  261. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  263. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
  265. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  267. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  269. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  271. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  273. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  275. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  279. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  280. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  281. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  285. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  286. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  287. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
  288. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  289. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  290. package/contracts/accounting/AccountingService.sol +2 -3
  291. package/contracts/authorization/AccessAdmin.sol +261 -185
  292. package/contracts/authorization/AccessAdminLib.sol +220 -7
  293. package/contracts/authorization/Authorization.sol +38 -229
  294. package/contracts/authorization/IAccess.sol +14 -4
  295. package/contracts/authorization/IAccessAdmin.sol +19 -45
  296. package/contracts/authorization/IAuthorization.sol +3 -56
  297. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  298. package/contracts/authorization/ServiceAuthorization.sol +247 -33
  299. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  300. package/contracts/distribution/Distribution.sol +2 -1
  301. package/contracts/distribution/DistributionService.sol +76 -28
  302. package/contracts/distribution/IDistributionComponent.sol +3 -1
  303. package/contracts/distribution/IDistributionService.sol +10 -4
  304. package/contracts/instance/IInstance.sol +43 -4
  305. package/contracts/instance/IInstanceService.sol +28 -3
  306. package/contracts/instance/Instance.sol +80 -39
  307. package/contracts/instance/InstanceAdmin.sol +162 -229
  308. package/contracts/instance/InstanceAuthorizationV3.sol +58 -28
  309. package/contracts/instance/InstanceReader.sol +371 -389
  310. package/contracts/instance/InstanceService.sol +105 -53
  311. package/contracts/instance/base/BalanceStore.sol +3 -5
  312. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  313. package/contracts/oracle/OracleService.sol +4 -4
  314. package/contracts/pool/BasicPoolAuthorization.sol +9 -3
  315. package/contracts/pool/BundleService.sol +9 -10
  316. package/contracts/pool/PoolLib.sol +138 -1
  317. package/contracts/pool/PoolService.sol +13 -186
  318. package/contracts/product/ApplicationService.sol +30 -5
  319. package/contracts/product/BasicProductAuthorization.sol +9 -4
  320. package/contracts/product/ClaimService.sol +19 -20
  321. package/contracts/product/IPolicyService.sol +0 -1
  322. package/contracts/product/PolicyService.sol +18 -45
  323. package/contracts/product/PolicyServiceLib.sol +75 -1
  324. package/contracts/product/PricingService.sol +22 -25
  325. package/contracts/registry/RegistryAdmin.sol +27 -97
  326. package/contracts/registry/RegistryAuthorization.sol +35 -25
  327. package/contracts/registry/ReleaseAdmin.sol +42 -100
  328. package/contracts/registry/ReleaseRegistry.sol +12 -9
  329. package/contracts/registry/ServiceAuthorizationV3.sol +33 -20
  330. package/contracts/registry/TokenRegistry.sol +2 -4
  331. package/contracts/shared/ComponentService.sol +29 -5
  332. package/contracts/shared/ContractLib.sol +9 -45
  333. package/contracts/shared/IRegisterable.sol +0 -1
  334. package/contracts/shared/NftOwnable.sol +1 -1
  335. package/contracts/shared/PolicyHolder.sol +3 -2
  336. package/contracts/shared/Service.sol +6 -4
  337. package/contracts/staking/IStakingService.sol +3 -0
  338. package/contracts/staking/Staking.sol +4 -5
  339. package/contracts/staking/StakingService.sol +3 -0
  340. package/contracts/staking/TargetManagerLib.sol +1 -1
  341. package/contracts/type/ObjectType.sol +16 -3
  342. package/contracts/type/RoleId.sol +57 -59
  343. package/contracts/type/String.sol +12 -0
  344. package/contracts/upgradeability/ProxyManager.sol +2 -2
  345. package/contracts/upgradeability/Versionable.sol +4 -1
  346. package/package.json +1 -1
  347. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  348. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  349. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  350. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  351. package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -68,6 +68,7 @@ contract ComponentService is
68
68
  function registerComponent(address componentAddress)
69
69
  external
70
70
  virtual
71
+ restricted()
71
72
  returns (NftId componentNftId)
72
73
  {
73
74
  // checks
@@ -78,7 +79,7 @@ contract ComponentService is
78
79
  }
79
80
 
80
81
  // check provided address is product contract
81
- if (!ContractLib.isInstanceLinkedComponent(address(registry), componentAddress)) {
82
+ if (!_isInstanceLinkedComponent(componentAddress)) {
82
83
  revert ErrorComponentServiceNotComponent(componentAddress);
83
84
  }
84
85
 
@@ -102,6 +103,7 @@ contract ComponentService is
102
103
  )
103
104
  external
104
105
  virtual
106
+ restricted()
105
107
  {
106
108
  // checks
107
109
  (NftId componentNftId, IInstance instance) = _getAndVerifyComponent(COMPONENT(), true);
@@ -117,6 +119,7 @@ contract ComponentService is
117
119
  function setWallet(address newWallet)
118
120
  external
119
121
  virtual
122
+ restricted()
120
123
  {
121
124
  // checks
122
125
  (NftId componentNftId, IInstance instance) = _getAndVerifyComponent(COMPONENT(), true);
@@ -199,6 +202,7 @@ contract ComponentService is
199
202
  function registerProduct(address productAddress, address token)
200
203
  external
201
204
  virtual
205
+ restricted()
202
206
  nonReentrant()
203
207
  returns (NftId productNftId)
204
208
  {
@@ -210,7 +214,7 @@ contract ComponentService is
210
214
  }
211
215
 
212
216
  // check provided address is product contract
213
- if (!ContractLib.isProduct(address(registry), productAddress)) {
217
+ if (!_isProduct(productAddress)) {
214
218
  revert ErrorComponentServiceNotProduct(productAddress);
215
219
  }
216
220
 
@@ -223,6 +227,24 @@ contract ComponentService is
223
227
  }
224
228
 
225
229
 
230
+ function _isProduct(address target) internal view virtual returns (bool) {
231
+ if (!_isInstanceLinkedComponent(target)) {
232
+ return false;
233
+ }
234
+
235
+ return IInstanceLinkedComponent(target).getInitialInfo().objectType == PRODUCT();
236
+ }
237
+
238
+
239
+ function _isInstanceLinkedComponent(address target) internal view virtual returns (bool) {
240
+ if (!ContractLib.isContract(target)) {
241
+ return false;
242
+ }
243
+
244
+ return ContractLib.supportsInterface(target, type(IInstanceLinkedComponent).interfaceId);
245
+ }
246
+
247
+
226
248
  /// @inheritdoc IComponentService
227
249
  function setProductFees(
228
250
  Fee memory productFee, // product fee on net premium
@@ -230,6 +252,7 @@ contract ComponentService is
230
252
  )
231
253
  external
232
254
  virtual
255
+ restricted()
233
256
  nonReentrant()
234
257
  {
235
258
  (NftId productNftId, IInstance instance) = _getAndVerifyComponent(PRODUCT(), true);
@@ -260,8 +283,7 @@ contract ComponentService is
260
283
  function _createProduct(
261
284
  InstanceStore instanceStore,
262
285
  NftId productNftId,
263
- address productAddress,
264
- address token
286
+ address productAddress
265
287
  )
266
288
  internal
267
289
  virtual
@@ -318,6 +340,7 @@ contract ComponentService is
318
340
  )
319
341
  external
320
342
  virtual
343
+ restricted()
321
344
  {
322
345
  (NftId distributionNftId, IInstance instance) = _getAndVerifyComponent(DISTRIBUTION(), true);
323
346
  (NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
@@ -406,6 +429,7 @@ contract ComponentService is
406
429
  )
407
430
  external
408
431
  virtual
432
+ restricted()
409
433
  {
410
434
  (NftId poolNftId, IInstance instance) = _getAndVerifyComponent(POOL(), true);
411
435
 
@@ -472,7 +496,7 @@ contract ComponentService is
472
496
  objectInfo.initialOwner).nftId;
473
497
 
474
498
  // create product info in instance store
475
- _createProduct(instanceStore, componentNftId, componentAddress, token);
499
+ _createProduct(instanceStore, componentNftId, componentAddress);
476
500
  } else {
477
501
  // register non product component with registry
478
502
  componentNftId = _registryService.registerProductLinkedComponent(
@@ -5,12 +5,12 @@ import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165C
5
5
  import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
6
6
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
7
7
 
8
- import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
9
8
  import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
10
9
  import {IRegistry} from "../registry/IRegistry.sol";
10
+ import {IService} from "../shared/IService.sol";
11
11
 
12
12
  import {NftId} from "../type/NftId.sol";
13
- import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL, STAKING} from "../type/ObjectType.sol";
13
+ import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
14
14
  import {VersionPart} from "../type/Version.sol";
15
15
 
16
16
  interface ITargetHelper {
@@ -98,25 +98,6 @@ library ContractLib {
98
98
  }
99
99
 
100
100
 
101
- // TODO cleanup
102
- // function getAndVerifyStaking(
103
- // IRegistry registry,
104
- // address target
105
- // )
106
- // external
107
- // view
108
- // returns (IRegistry.ObjectInfo memory info)
109
- // {
110
- // // check target is component
111
- // info = _getAndVerifyObjectInfo(registry, target);
112
- // if(info.objectType != STAKING()) {
113
- // revert ErrorContractLibNotStaking(
114
- // info.nftId,
115
- // info.objectType);
116
- // }
117
- // }
118
-
119
-
120
101
  function getInstanceForComponent(
121
102
  IRegistry registry,
122
103
  NftId componentNftId
@@ -178,39 +159,22 @@ library ContractLib {
178
159
  }
179
160
 
180
161
 
181
- function isProduct(address registry, address target)
182
- public
183
- view
184
- returns (bool)
185
- {
186
- if (!isInstanceLinkedComponent(registry, target)) {
187
- return false;
188
- }
189
-
190
- return IInstanceLinkedComponent(target).getInitialInfo().objectType == PRODUCT();
191
- }
192
-
193
-
194
- function isInstanceLinkedComponent(address registry, address target)
195
- public
196
- view
197
- returns (bool)
198
- {
199
- if (!isContract(target)) {
162
+ function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
163
+ NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
164
+ if (nftId.eqz()) {
200
165
  return false;
201
166
  }
202
167
 
203
- return supportsInterface(target, type(IInstanceLinkedComponent).interfaceId);
168
+ return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
204
169
  }
205
170
 
206
171
 
207
- function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
208
- NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
209
- if (nftId.eqz()) {
172
+ function isService(address service) public view returns (bool) {
173
+ if (!isContract(service)) {
210
174
  return false;
211
175
  }
212
176
 
213
- return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
177
+ return supportsInterface(service, type(IService).interfaceId);
214
178
  }
215
179
 
216
180
 
@@ -6,7 +6,6 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
6
6
  import {INftOwnable} from "./INftOwnable.sol";
7
7
  import {IRelease} from "../registry/IRelease.sol";
8
8
  import {IRegistry} from "../registry/IRegistry.sol";
9
- import {VersionPart} from "../type/Version.sol";
10
9
 
11
10
  /// @title IRegisterable
12
11
  /// @dev Marks contracts that are intended to be registered in the registry.
@@ -41,7 +41,7 @@ contract NftOwnable is
41
41
  }
42
42
 
43
43
  function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
44
- if(!getRegistry().isObjectType(nftId, expectedObjectType)) {
44
+ if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
45
45
  revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
46
46
  }
47
47
  }
@@ -3,12 +3,13 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
5
5
 
6
+ import {IPolicyHolder} from "./IPolicyHolder.sol";
7
+
6
8
  import {Amount} from "../type/Amount.sol";
7
9
  import {ClaimId} from "../type/ClaimId.sol";
8
10
  import {InitializableERC165} from "./InitializableERC165.sol";
9
- import {IPolicyHolder} from "./IPolicyHolder.sol";
10
11
  import {NftId} from "../type/NftId.sol";
11
- import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
12
+ import {PayoutId} from "../type/PayoutId.sol";
12
13
  import {RegistryLinked} from "./RegistryLinked.sol";
13
14
  import {Timestamp} from "../type/Timestamp.sol";
14
15
 
@@ -1,16 +1,15 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
4
  import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
6
5
 
7
6
  import {IRegistry} from "../registry/IRegistry.sol";
8
7
  import {IService} from "./IService.sol";
9
8
  import {IVersionable} from "../upgradeability/IVersionable.sol";
10
- import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
9
+ import {ObjectType, SERVICE} from "../type/ObjectType.sol";
11
10
  import {Registerable} from "./Registerable.sol";
12
11
  import {RoleId, RoleIdLib} from "../type/RoleId.sol";
13
- import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
12
+ import {Version, VersionLib} from "../type/Version.sol";
14
13
  import {Versionable} from "../upgradeability/Versionable.sol";
15
14
 
16
15
 
@@ -53,12 +52,15 @@ abstract contract Service is
53
52
  return VersionLib.toVersion(3, 0, 0);
54
53
  }
55
54
 
55
+
56
56
  function getRoleId() external virtual view returns(RoleId serviceRoleId) {
57
- return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
57
+ return RoleIdLib.toServiceRoleId(_getDomain(), getRelease());
58
58
  }
59
59
 
60
+ //--- internal functions --------------------------------------------------------//
60
61
  function _getDomain() internal virtual pure returns (ObjectType);
61
62
 
63
+
62
64
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
63
65
  return getRegistry().getServiceAddress(domain, getRelease());
64
66
  }
@@ -160,13 +160,16 @@ interface IStakingService is IService
160
160
 
161
161
  function getDipToken()
162
162
  external
163
+ view
163
164
  returns (IERC20Metadata dip);
164
165
 
165
166
  function getTokenHandler()
166
167
  external
168
+ view
167
169
  returns (TokenHandler tokenHandler);
168
170
 
169
171
  function getStaking()
170
172
  external
173
+ view
171
174
  returns (IStaking staking);
172
175
  }
@@ -243,7 +243,7 @@ contract Staking is
243
243
  returns (Amount newBalance)
244
244
  {
245
245
  StakingStorage storage $ = _getStakingStorage();
246
- uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
246
+ uint256 chainId = $._reader.getTargetInfo(targetNftId).chainId;
247
247
  UFixed stakingRate = $._reader.getStakingRate(chainId, token);
248
248
  newBalance = $._store.increaseTotalValueLocked(targetNftId, stakingRate, token, amount);
249
249
  }
@@ -256,7 +256,7 @@ contract Staking is
256
256
  returns (Amount newBalance)
257
257
  {
258
258
  StakingStorage storage $ = _getStakingStorage();
259
- uint chainId = $._reader.getTargetInfo(targetNftId).chainId;
259
+ uint256 chainId = $._reader.getTargetInfo(targetNftId).chainId;
260
260
  UFixed stakingRate = $._reader.getStakingRate(chainId, token);
261
261
  newBalance = $._store.decreaseTotalValueLocked(targetNftId, stakingRate, token, amount);
262
262
  }
@@ -495,8 +495,9 @@ contract Staking is
495
495
  }
496
496
 
497
497
 
498
+ /// @dev top level initializer (upgradable contract)
498
499
  function _initialize(
499
- address owner,
500
+ address,
500
501
  bytes memory data
501
502
  )
502
503
  internal
@@ -513,8 +514,6 @@ contract Staking is
513
514
  // only admin(authority) and dip token address are set in registry at this point
514
515
  IRegistry registry = IRegistry(registryAddress);
515
516
  address authority = registry.getAuthority();
516
- TokenRegistry tokenRegistry = TokenRegistry(tokenRegistryAddress);
517
- address dipTokenAddress = tokenRegistry.getDipTokenAddress();
518
517
 
519
518
  // wiring to external contracts
520
519
  StakingStorage storage $ = _getStakingStorage();
@@ -348,6 +348,7 @@ contract StakingService is
348
348
 
349
349
  function getDipToken()
350
350
  external
351
+ view
351
352
  virtual
352
353
  returns (IERC20Metadata dip)
353
354
  {
@@ -357,6 +358,7 @@ contract StakingService is
357
358
 
358
359
  function getTokenHandler()
359
360
  external
361
+ view
360
362
  virtual
361
363
  returns (TokenHandler tokenHandler)
362
364
  {
@@ -366,6 +368,7 @@ contract StakingService is
366
368
 
367
369
  function getStaking()
368
370
  external
371
+ view
369
372
  virtual
370
373
  returns (IStaking staking)
371
374
  {
@@ -160,7 +160,7 @@ library TargetManagerLib {
160
160
  UFixed stakingRate
161
161
  )
162
162
  public
163
- view
163
+ pure
164
164
  returns (Amount dipAmount)
165
165
  {
166
166
  dipAmount = tokenAmount.multiplyWith(stakingRate);
@@ -10,6 +10,7 @@ using {
10
10
  eqObjectType as ==,
11
11
  neObjectType as !=,
12
12
  ObjectTypeLib.toInt,
13
+ ObjectTypeLib.toName,
13
14
  ObjectTypeLib.eqz,
14
15
  ObjectTypeLib.eq,
15
16
  ObjectTypeLib.gtz
@@ -143,7 +144,16 @@ function REFERRAL() pure returns (ObjectType) {
143
144
  return ObjectType.wrap(49);
144
145
  }
145
146
 
147
+ /// @dev Object type for GIF core target roles.
148
+ function CORE() pure returns (ObjectType) {
149
+ return ObjectType.wrap(97);
150
+ }
146
151
 
152
+ /// @dev Object type for target roles of contracts outside the GIF framework.
153
+ /// Example: Custom supporting contracts for a product component.
154
+ function CUSTOM() pure returns (ObjectType) {
155
+ return ObjectType.wrap(98);
156
+ }
147
157
 
148
158
  /// @dev Object type that includes any other object type.
149
159
  /// Note that eq()/'==' does not take this property into account.
@@ -203,6 +213,8 @@ library ObjectTypeLib {
203
213
  return "Registry";
204
214
  } else if (objectType == STAKING()) {
205
215
  return "Staking";
216
+ } else if (objectType == RELEASE()) {
217
+ return "Release";
206
218
  } else if (objectType == INSTANCE()) {
207
219
  return "Instance";
208
220
  } else if (objectType == COMPONENT()) {
@@ -239,6 +251,7 @@ library ObjectTypeLib {
239
251
  toInt(objectType))));
240
252
  }
241
253
 
254
+ // TODO move to IService
242
255
  function toVersionedName(
243
256
  string memory name,
244
257
  string memory suffix,
@@ -248,10 +261,10 @@ library ObjectTypeLib {
248
261
  pure
249
262
  returns (string memory versionedName)
250
263
  {
251
- string memory versionName = "_v0";
264
+ string memory versionName = "V0";
252
265
 
253
266
  if (release.toInt() >= 10) {
254
- versionName = "_v";
267
+ versionName = "V";
255
268
  }
256
269
 
257
270
  versionedName = string(
@@ -277,7 +290,7 @@ library ObjectTypeLib {
277
290
  }
278
291
 
279
292
  bytes memory buffer = new bytes(digits);
280
- uint index = digits - 1;
293
+ uint256 index = digits - 1;
281
294
 
282
295
  temp = value;
283
296
  while (temp != 0) {
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {ObjectType, ROLE} from "./ObjectType.sol";
6
- import {VersionPart} from "./Version.sol";
6
+ import {VersionPart, VersionPartLib} from "./Version.sol";
7
7
 
8
8
  type RoleId is uint64;
9
9
 
@@ -12,11 +12,9 @@ using {
12
12
  eqRoleId as ==,
13
13
  neRoleId as !=,
14
14
  RoleIdLib.toInt,
15
+ RoleIdLib.isServiceRole,
15
16
  RoleIdLib.eqz,
16
- RoleIdLib.gtz,
17
- RoleIdLib.isComponentRole,
18
- RoleIdLib.isCustomRole
19
- // RoleIdLib.toKey32
17
+ RoleIdLib.gtz
20
18
  } for RoleId global;
21
19
 
22
20
  // general pure free functions
@@ -56,9 +54,14 @@ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2)
56
54
  /// @dev role for registering remote staking targets and reporting remote total value locked amounts.
57
55
  function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
58
56
 
57
+ // TODO check if/where this is really needed
59
58
  /// @dev role assigned to release registry, release specfic to lock/unlock a release
60
59
  function RELEASE_REGISTRY_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
61
60
 
61
+ /// @dev role assigned to every instance owner
62
+ function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(5); }
63
+
64
+ // TODO upate role id ranges
62
65
  //--- GIF core contract roles (range: 200 - 9'900) --------------------------//
63
66
  // created and assigned during initial deployment for registry and staking
64
67
  // granting for instances and components in instance service
@@ -97,56 +100,72 @@ function CUSTOM_ROLE_MIN() pure returns (RoleId) { return RoleIdLib.toRoleId(100
97
100
 
98
101
  library RoleIdLib {
99
102
 
100
- uint64 public constant ALL_VERSIONS = 99;
101
- uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
102
- uint64 public constant COMPONENT_ROLE_FACTOR = 1000;
103
- uint64 public constant COMPONENT_ROLE_MIN_INT = 12000;
104
- uint64 public constant COMPONENT_ROLE_MAX_INT = 19000;
105
- uint64 public constant CUSTOM_ROLE_MIN_INT = 1000000;
103
+ error ErrorRoleIdTooBig(uint256 roleId);
104
+
105
+ // constant values need to match with AccessAdminLib.SERVICE_ROLE_*
106
+ uint64 public constant SERVICE_ROLE_MIN = 1000;
107
+ uint64 public constant SERVICE_ROLE_MAX = 99099; // 99 (max object type) * 1000 + 99
108
+
109
+ uint64 public constant SERVICE_ROLE_FACTOR = 1000;
106
110
 
107
111
  /// @dev Converts the RoleId to a uint.
108
112
  function zero() public pure returns (RoleId) {
109
113
  return RoleId.wrap(0);
110
114
  }
111
115
 
116
+
112
117
  /// @dev Converts an uint into a role id.
113
- function toRoleId(uint64 a) public pure returns (RoleId) {
114
- return RoleId.wrap(a);
115
- }
118
+ function toRoleId(uint256 a) public pure returns (RoleId) {
119
+ if (a > type(uint64).max) {
120
+ revert ErrorRoleIdTooBig(a);
121
+ }
116
122
 
117
- /// @dev Converts an uint into a component role id.
118
- function toComponentRoleId(ObjectType objectType, uint64 index) public pure returns (RoleId) {
119
- return toRoleId(COMPONENT_ROLE_FACTOR * uint64(objectType.toInt()) + index);
123
+ return RoleId.wrap(uint64(a));
120
124
  }
121
125
 
122
- /// @dev Converts an uint into a custom role id.
123
- function toCustomRoleId(uint64 index) public pure returns (RoleId) {
124
- return toRoleId(CUSTOM_ROLE_MIN_INT + index);
125
- }
126
126
 
127
- /// @dev Converts the role id to a uint.
128
- function toInt(RoleId a) public pure returns (uint64) {
129
- return uint64(RoleId.unwrap(a));
127
+ function isServiceRole(RoleId roleId)
128
+ public
129
+ pure
130
+ returns (bool)
131
+ {
132
+ uint256 roleIdInt = RoleId.unwrap(roleId);
133
+ return roleIdInt >= SERVICE_ROLE_MIN && roleIdInt <= SERVICE_ROLE_MAX;
130
134
  }
131
135
 
132
- /// @dev Converts an uint into a role id.
133
- /// Used for GIF core contracts.
134
- function roleForType(ObjectType objectType) public pure returns (RoleId) {
135
- return RoleId.wrap(SERVICE_DOMAIN_ROLE_FACTOR * uint64(objectType.toInt()));
136
+
137
+ function toGenericServiceRoleId(
138
+ ObjectType objectType
139
+ )
140
+ public
141
+ pure
142
+ returns (RoleId)
143
+ {
144
+ return toServiceRoleId(
145
+ objectType,
146
+ VersionPartLib.releaseMax());
136
147
  }
137
148
 
138
- /// @dev Converts an uint into a RoleId.
139
- /// Used for GIF core contracts.
140
- function roleForTypeAndVersion(ObjectType objectType, VersionPart majorVersion) public pure returns (RoleId) {
141
- return RoleId.wrap(
142
- uint64(SERVICE_DOMAIN_ROLE_FACTOR * objectType.toInt() + majorVersion.toInt()));
149
+
150
+ function toServiceRoleId(
151
+ ObjectType serviceDomain,
152
+ VersionPart release
153
+ )
154
+ public
155
+ pure
156
+ returns (RoleId serviceRoleId)
157
+ {
158
+ uint256 serviceRoleIdInt =
159
+ SERVICE_ROLE_MIN
160
+ + SERVICE_ROLE_FACTOR * (serviceDomain.toInt() - 1)
161
+ + release.toInt();
162
+
163
+ return toRoleId(serviceRoleIdInt);
143
164
  }
144
165
 
145
- /// @dev Converts an uint into a RoleId.
146
- /// Used for GIF core contracts.
147
- function roleForTypeAndAllVersions(ObjectType objectType) public pure returns (RoleId) {
148
- return RoleId.wrap(
149
- uint64(SERVICE_DOMAIN_ROLE_FACTOR * objectType.toInt() + ALL_VERSIONS));
166
+ /// @dev Converts the role id to a uint.
167
+ function toInt(RoleId a) public pure returns (uint64) {
168
+ return uint64(RoleId.unwrap(a));
150
169
  }
151
170
 
152
171
  /// @dev Returns true if the value is non-zero (> 0).
@@ -158,25 +177,4 @@ library RoleIdLib {
158
177
  function eqz(RoleId a) public pure returns (bool) {
159
178
  return RoleId.unwrap(a) == 0;
160
179
  }
161
-
162
- /// @dev Returns true iff the role id is a component role.
163
- function isComponentRole(RoleId roleId) public pure returns (bool) {
164
- uint64 roleIdInt = RoleId.unwrap(roleId);
165
- return roleIdInt >= COMPONENT_ROLE_MIN_INT && roleIdInt <= COMPONENT_ROLE_MAX_INT;
166
- }
167
-
168
- /// @dev Returns true iff the role id is a custom role.
169
- function isCustomRole(RoleId roleId) public pure returns (bool) {
170
- return RoleId.unwrap(roleId) >= CUSTOM_ROLE_MIN_INT;
171
- }
172
-
173
- /// @dev Returns the key32 value for the specified id and object type.
174
- function toKey32(RoleId a) public pure returns (Key32 key) {
175
- return Key32Lib.toKey32(ROLE(), toKeyId(a));
176
- }
177
-
178
- /// @dev Returns the key id value for the specified id
179
- function toKeyId(RoleId a) public pure returns (KeyId keyId) {
180
- return KeyId.wrap(bytes31(uint248(RoleId.unwrap(a))));
181
- }
182
180
  }
@@ -12,10 +12,12 @@ using {
12
12
  StrLib.length
13
13
  } for Str global;
14
14
 
15
+ // pure free function needed for the operator overloading
15
16
  function StrEq(Str s1, Str s2) pure returns (bool) {
16
17
  return StrLib.eq(s1, s2);
17
18
  }
18
19
 
20
+ // pure free function needed for the operator overloading
19
21
  function StrNe(Str s1, Str s2) pure returns (bool) {
20
22
  return StrLib.ne(s1, s2);
21
23
  }
@@ -39,6 +41,16 @@ library StrLib {
39
41
  return Str.unwrap(s1) != Str.unwrap(s2);
40
42
  }
41
43
 
44
+ /// @dev return true iff s1 equals from s2
45
+ function eq(string memory s1, string memory s2) public pure returns (bool) {
46
+ return keccak256(bytes(s1)) == keccak256(bytes(s2));
47
+ }
48
+
49
+ /// @dev return true iff s1 differs s2
50
+ function ne(string memory s1, string memory s2) public pure returns (bool) {
51
+ return !eq(s1, s2);
52
+ }
53
+
42
54
  /// @dev converts the provided short string into a string.
43
55
  /// uses ShortStrings.toString
44
56
  function toString(Str str) public pure returns (string memory) {
@@ -39,8 +39,8 @@ contract ProxyManager is
39
39
  UpgradableProxyWithAdmin internal _proxy;
40
40
 
41
41
  // state to keep version history
42
- mapping(Version version => VersionInfo info) _versionHistory;
43
- Version [] _versions;
42
+ mapping(Version version => VersionInfo info) internal _versionHistory;
43
+ Version [] internal _versions;
44
44
 
45
45
  /// @dev convencience initializer
46
46
  function initialize(
@@ -39,7 +39,10 @@ abstract contract Versionable is
39
39
  // IMPORTANT each version must implement this function
40
40
  // each implementation MUST use onlyInitialising modifier
41
41
  // each implementation MUST call intializers of all base contracts...
42
- function _initialize(address owner, bytes memory data)
42
+ function _initialize(
43
+ address, // owner
44
+ bytes memory // data
45
+ )
43
46
  internal
44
47
  onlyInitializing()
45
48
  virtual
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-91b514c-961",
3
+ "version": "0.0.2-9272c43-568",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/bd8a33494dd4e0abb079491fbe37e227.json"
4
- }