@etherisc/gif-next 0.0.2-de7c770-422 → 0.0.2-de9ede4-391

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 (472) hide show
  1. package/README.md +28 -7
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -63
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  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 +60 -32
  18. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  20. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  22. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +159 -209
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +99 -125
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +180 -86
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +139 -64
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +87 -108
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +52 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1441 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1991 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +187 -169
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +131 -157
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +282 -194
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +564 -249
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +116 -48
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -101
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +149 -60
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +196 -138
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +687 -84
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -148
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +107 -44
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +475 -116
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  97. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  103. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +119 -169
  106. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  108. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  109. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +82 -103
  111. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  113. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +95 -121
  115. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +147 -79
  117. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +127 -40
  119. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +115 -141
  121. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
  123. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +148 -150
  125. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  126. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +121 -70
  127. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +48 -33
  129. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +102 -134
  131. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  132. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +272 -185
  133. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  134. package/artifacts/contracts/pool/Pool.sol/Pool.json +115 -152
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +413 -263
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +144 -45
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +119 -45
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -40
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +158 -138
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +200 -86
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +144 -61
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +63 -7
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +64 -8
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +178 -19
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +141 -116
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +328 -119
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -55
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.json +170 -107
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +119 -48
  171. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  172. package/artifacts/contracts/product/Product.sol/Product.json +154 -134
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.json +81 -26
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -34
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +91 -15
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
  183. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  185. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.json +135 -51
  187. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +220 -182
  189. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +94 -172
  191. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -32
  193. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  195. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +123 -225
  197. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  199. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  201. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  202. package/artifacts/contracts/shared/Component.sol/Component.json +72 -80
  203. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  204. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +483 -477
  205. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  206. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -76
  207. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -0
  209. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  210. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
  211. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  212. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  213. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  215. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +61 -64
  217. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  218. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +425 -261
  219. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  220. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +82 -103
  221. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  223. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  224. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  225. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  226. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  227. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -6
  229. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  231. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  234. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  235. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +94 -120
  237. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  238. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  239. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  240. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  241. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  243. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +18 -2
  245. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +18 -8
  247. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +66 -8
  249. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  251. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Service.sol/Service.json +47 -0
  253. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  257. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  259. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +79 -100
  261. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  263. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  264. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
  265. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  266. package/artifacts/contracts/staking/Staking.sol/Staking.json +158 -170
  267. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  268. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  269. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +120 -54
  271. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
  273. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -53
  275. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -36
  277. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -104
  279. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  280. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
  281. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  282. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  283. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  284. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  285. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  287. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  289. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  291. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  292. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  293. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  294. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  295. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  297. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  298. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  299. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  301. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  303. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  305. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  307. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
  309. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  311. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  316. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  320. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  322. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  323. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -27
  325. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  326. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  327. package/contracts/accounting/AccountingService.sol +263 -0
  328. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  329. package/contracts/accounting/IAccountingService.sol +45 -0
  330. package/contracts/authorization/AccessAdmin.sol +82 -56
  331. package/contracts/authorization/Authorization.sol +111 -39
  332. package/contracts/authorization/IAccess.sol +1 -0
  333. package/contracts/authorization/IAccessAdmin.sol +4 -3
  334. package/contracts/authorization/IAuthorization.sol +13 -7
  335. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  336. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  337. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  338. package/contracts/distribution/BasicDistribution.sol +8 -7
  339. package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
  340. package/contracts/distribution/Distribution.sol +32 -40
  341. package/contracts/distribution/DistributionService.sol +86 -65
  342. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  343. package/contracts/distribution/IDistributionComponent.sol +1 -1
  344. package/contracts/distribution/IDistributionService.sol +5 -6
  345. package/contracts/examples/fire/DamageLevel.sol +59 -0
  346. package/contracts/examples/fire/FirePool.sol +90 -0
  347. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  348. package/contracts/examples/fire/FireProduct.sol +436 -0
  349. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  350. package/contracts/examples/fire/FireUSD.sol +26 -0
  351. package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
  352. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  353. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
  354. package/contracts/examples/unpermissioned/SimplePool.sol +37 -6
  355. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  356. package/contracts/examples/unpermissioned/SimpleProduct.sol +24 -23
  357. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  358. package/contracts/instance/BundleSet.sol +38 -34
  359. package/contracts/instance/IInstance.sol +11 -3
  360. package/contracts/instance/IInstanceService.sol +7 -29
  361. package/contracts/instance/Instance.sol +36 -26
  362. package/contracts/instance/InstanceAdmin.sol +57 -54
  363. package/contracts/instance/InstanceAuthorizationV3.sol +50 -32
  364. package/contracts/instance/InstanceReader.sol +187 -21
  365. package/contracts/instance/InstanceService.sol +54 -129
  366. package/contracts/instance/InstanceServiceManager.sol +6 -7
  367. package/contracts/instance/InstanceStore.sol +12 -2
  368. package/contracts/instance/RiskSet.sol +119 -0
  369. package/contracts/instance/base/ObjectCounter.sol +1 -2
  370. package/contracts/instance/base/ObjectLifecycle.sol +2 -1
  371. package/contracts/instance/base/ObjectSet.sol +24 -25
  372. package/contracts/instance/module/IComponents.sol +20 -7
  373. package/contracts/instance/module/IPolicy.sol +4 -3
  374. package/contracts/instance/module/IRisk.sol +1 -0
  375. package/contracts/oracle/BasicOracle.sol +0 -1
  376. package/contracts/oracle/IOracleService.sol +2 -1
  377. package/contracts/oracle/Oracle.sol +4 -15
  378. package/contracts/oracle/OracleService.sol +110 -80
  379. package/contracts/oracle/OracleServiceManager.sol +6 -6
  380. package/contracts/pool/BasicPool.sol +33 -24
  381. package/contracts/pool/BasicPoolAuthorization.sol +12 -2
  382. package/contracts/pool/BundleService.sol +74 -87
  383. package/contracts/pool/BundleServiceManager.sol +6 -6
  384. package/contracts/pool/IBundleService.sol +2 -15
  385. package/contracts/pool/IPoolComponent.sol +19 -15
  386. package/contracts/pool/IPoolService.sol +30 -37
  387. package/contracts/pool/Pool.sol +141 -122
  388. package/contracts/pool/PoolService.sol +263 -157
  389. package/contracts/pool/PoolServiceManager.sol +4 -4
  390. package/contracts/product/ApplicationService.sol +31 -20
  391. package/contracts/product/ApplicationServiceManager.sol +4 -4
  392. package/contracts/product/BasicProduct.sol +8 -12
  393. package/contracts/product/BasicProductAuthorization.sol +1 -3
  394. package/contracts/product/ClaimService.sol +233 -106
  395. package/contracts/product/ClaimServiceManager.sol +4 -4
  396. package/contracts/product/IApplicationService.sol +5 -2
  397. package/contracts/product/IClaimService.sol +3 -2
  398. package/contracts/product/IPolicyService.sol +25 -8
  399. package/contracts/product/IPricingService.sol +9 -9
  400. package/contracts/product/IProductComponent.sol +23 -3
  401. package/contracts/product/PolicyService.sol +361 -198
  402. package/contracts/product/PolicyServiceManager.sol +4 -4
  403. package/contracts/product/PricingService.sol +10 -11
  404. package/contracts/product/PricingServiceManager.sol +3 -3
  405. package/contracts/product/Product.sol +76 -74
  406. package/contracts/product/RiskService.sol +16 -6
  407. package/contracts/product/RiskServiceManager.sol +4 -4
  408. package/contracts/registry/ChainNft.sol +10 -11
  409. package/contracts/registry/IRegistry.sol +8 -3
  410. package/contracts/registry/IRegistryService.sol +5 -12
  411. package/contracts/registry/ITransferInterceptor.sol +1 -2
  412. package/contracts/registry/Registry.sol +29 -6
  413. package/contracts/registry/RegistryAdmin.sol +29 -36
  414. package/contracts/registry/RegistryService.sol +33 -44
  415. package/contracts/registry/RegistryServiceManager.sol +2 -2
  416. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  417. package/contracts/registry/ReleaseRegistry.sol +205 -210
  418. package/contracts/registry/ServiceAuthorizationV3.sol +58 -50
  419. package/contracts/shared/Component.sol +56 -105
  420. package/contracts/shared/ComponentService.sol +384 -329
  421. package/contracts/shared/ComponentServiceManager.sol +8 -5
  422. package/contracts/shared/ComponentVerifyingService.sol +27 -16
  423. package/contracts/shared/ContractLib.sol +224 -0
  424. package/contracts/shared/IComponent.sol +6 -14
  425. package/contracts/shared/IComponentService.sol +45 -37
  426. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  427. package/contracts/shared/ILifecycle.sol +3 -1
  428. package/contracts/shared/INftOwnable.sol +2 -0
  429. package/contracts/shared/IPolicyHolder.sol +12 -13
  430. package/contracts/shared/IRegisterable.sol +11 -0
  431. package/contracts/shared/InstanceLinkedComponent.sol +68 -43
  432. package/contracts/shared/KeyValueStore.sol +1 -1
  433. package/contracts/shared/Lifecycle.sol +15 -4
  434. package/contracts/shared/NftOwnable.sol +23 -3
  435. package/contracts/shared/PolicyHolder.sol +11 -5
  436. package/contracts/shared/Registerable.sol +15 -7
  437. package/contracts/shared/RegistryLinked.sol +6 -12
  438. package/contracts/shared/Service.sol +16 -14
  439. package/contracts/shared/TokenHandler.sol +316 -66
  440. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  441. package/contracts/staking/IStaking.sol +9 -4
  442. package/contracts/staking/IStakingService.sol +0 -3
  443. package/contracts/staking/Staking.sol +42 -25
  444. package/contracts/staking/StakingManager.sol +8 -6
  445. package/contracts/staking/StakingReader.sol +12 -5
  446. package/contracts/staking/StakingService.sol +56 -23
  447. package/contracts/staking/StakingServiceManager.sol +2 -2
  448. package/contracts/type/Amount.sol +15 -0
  449. package/contracts/type/ClaimId.sol +6 -1
  450. package/contracts/type/Key32.sol +2 -2
  451. package/contracts/type/Key32Set.sol +62 -0
  452. package/contracts/type/NftId.sol +7 -0
  453. package/contracts/type/ObjectType.sol +14 -0
  454. package/contracts/type/PayoutId.sol +10 -10
  455. package/contracts/type/RiskId.sol +30 -4
  456. package/contracts/type/RoleId.sol +0 -12
  457. package/contracts/type/StateId.sol +14 -1
  458. package/contracts/type/UFixed.sol +13 -119
  459. package/contracts/upgradeability/ProxyManager.sol +68 -34
  460. package/contracts/upgradeability/Versionable.sol +2 -2
  461. package/package.json +4 -3
  462. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  463. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  464. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  465. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  466. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  467. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  468. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  469. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  470. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  471. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  472. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -11,60 +11,74 @@ import {TimestampLib} from "../type/Timestamp.sol";
11
11
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
12
 
13
13
  contract Authorization
14
- is IAuthorization
14
+ is IAuthorization
15
15
  {
16
- uint256 public constant GIF_VERSION = 3;
17
- string public constant ROLE_NAME_SUFFIX = "Role";
18
- string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
16
+ uint256 public constant GIF_RELEASE = 3;
19
17
 
20
- string internal _mainTargetName = "Component";
21
- Str[] internal _targets;
18
+ string public constant ROLE_NAME_SUFFIX = "Role";
19
+ string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
22
20
 
23
- mapping(Str target => RoleId roleid) internal _targetRole;
24
- mapping(Str target => bool exists) internal _targetExists;
21
+ ObjectType[] internal _serviceDomains;
22
+ mapping(ObjectType domain => Str target) internal _serviceTarget;
25
23
 
26
- RoleId[] internal _roles;
27
- mapping(RoleId role => RoleInfo info) internal _roleInfo;
24
+ string internal _mainTargetName = "Component";
25
+ Str[] internal _targets;
28
26
 
29
- mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
30
- mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
27
+ mapping(Str target => RoleId roleid) internal _targetRole;
28
+ mapping(Str target => bool exists) internal _targetExists;
31
29
 
30
+ RoleId[] internal _roles;
31
+ mapping(RoleId role => RoleInfo info) internal _roleInfo;
32
32
 
33
- constructor(string memory mainTargetName) {
34
- _mainTargetName = mainTargetName;
33
+ mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
34
+ mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
35
35
 
36
- _setupRoles();
37
- _setupTargets();
38
- _setupTargetAuthorizations();
36
+
37
+ constructor(string memory mainTargetName) {
38
+ _mainTargetName = mainTargetName;
39
+
40
+ _setupServiceTargets();
41
+ _setupRoles();
42
+ _setupTargets();
43
+ _setupTargetAuthorizations();
44
+ }
45
+
46
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
47
+ return _serviceDomains;
48
+ }
49
+
50
+ function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
51
+ return RoleIdLib.roleForTypeAndVersion(
52
+ serviceDomain,
53
+ getRelease());
39
54
  }
40
55
 
41
- function getRelease() public virtual pure returns(VersionPart release) {
42
- return VersionPartLib.toVersionPart(GIF_VERSION);
56
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
57
+ return _serviceTarget[serviceDomain];
43
58
  }
44
59
 
45
60
  function getRoles() external view returns(RoleId[] memory roles) {
46
61
  return _roles;
47
62
  }
48
63
 
49
- function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
50
- return RoleIdLib.roleForTypeAndVersion(
51
- serviceDomain, getRelease());
64
+ function roleExists(RoleId roleId) public view returns(bool exists) {
65
+ return _roleInfo[roleId].roleType != RoleType.Undefined;
52
66
  }
53
67
 
54
68
  function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
55
69
  return _roleInfo[roleId];
56
70
  }
57
71
 
58
- function roleExists(RoleId roleId) public view returns(bool exists) {
59
- return _roleInfo[roleId].roleType != RoleType.Undefined;
72
+ function getTargetName() public virtual view returns (string memory name) {
73
+ return _mainTargetName;
60
74
  }
61
75
 
62
- function getTarget() public view returns(Str) {
63
- if (_targets.length > 0) {
64
- return _targets[0];
65
- }
76
+ function getMainTarget() public view returns(Str) {
77
+ return getTarget(_mainTargetName);
78
+ }
66
79
 
67
- return StrLib.toStr("");
80
+ function getTarget(string memory targetName) public view returns(Str target) {
81
+ return StrLib.toStr(targetName);
68
82
  }
69
83
 
70
84
  function getTargets() external view returns(Str[] memory targets) {
@@ -87,26 +101,60 @@ contract Authorization
87
101
  return _authorizedFunctions[target][roleId];
88
102
  }
89
103
 
90
- function getTargetName() public virtual view returns (string memory name) {
91
- return _mainTargetName;
92
- }
104
+ function getRelease() public virtual pure returns(VersionPart release) {
105
+ return VersionPartLib.toVersionPart(GIF_RELEASE);
106
+ }
107
+
108
+ /// @dev Sets up the relevant service targets for the component.
109
+ /// Overwrite this function for a specific component.
110
+ function _setupServiceTargets() internal virtual { }
93
111
 
94
- /// @dev Overwrite this function for a specific realease.
95
- /// The first target added represents the components/module main target.
112
+ /// @dev Sets up the relevant (non-service) targets for the component.
113
+ /// Overwrite this function for a specific component.
96
114
  function _setupTargets() internal virtual { }
97
115
 
98
- /// @dev Overwrite this function for a specific realease.
116
+ /// @dev Sets up the relevant roles for the component.
117
+ /// Overwrite this function for a specific component.
99
118
  function _setupRoles() internal virtual {}
100
119
 
101
- /// @dev Overwrite this function for a specific realease.
120
+ /// @dev Sets up the relevant target authorizations for the component.
121
+ /// Overwrite this function for a specific realease.
102
122
  function _setupTargetAuthorizations() internal virtual {}
103
123
 
124
+
125
+ /// @dev Add the service target role for the specified service domain
126
+ function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
127
+ // add service domain
128
+ _serviceDomains.push(serviceDomain);
129
+
130
+ // get versioned target name
131
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
132
+ ObjectTypeLib.toName(serviceDomain),
133
+ "Service",
134
+ getRelease().toInt());
135
+
136
+ _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
137
+
138
+ RoleId serviceRoleId = getServiceRole(serviceDomain);
139
+ string memory serviceRoleName = ObjectTypeLib.toVersionedName(
140
+ ObjectTypeLib.toName(serviceDomain),
141
+ "ServiceRole",
142
+ getRelease().toInt());
143
+
144
+ _addTargetWithRole(
145
+ serviceTargetName,
146
+ serviceRoleId,
147
+ serviceRoleName);
148
+ }
149
+
150
+
104
151
  /// @dev Use this method to to add an authorized role.
105
152
  function _addRole(RoleId roleId, RoleInfo memory info) internal {
106
153
  _roles.push(roleId);
107
154
  _roleInfo[roleId] = info;
108
155
  }
109
156
 
157
+
110
158
  /// @dev Add a contract role for the provided role id and name.
111
159
  function _addContractRole(RoleId roleId, string memory name) internal {
112
160
  _addRole(
@@ -118,6 +166,7 @@ contract Authorization
118
166
  name));
119
167
  }
120
168
 
169
+
121
170
  /// @dev Add the versioned service role for the specified service domain
122
171
  function _addServiceRole(ObjectType serviceDomain) internal {
123
172
  _addContractRole(
@@ -128,14 +177,21 @@ contract Authorization
128
177
  getRelease().toInt()));
129
178
  }
130
179
 
180
+
131
181
  function _addComponentTargetWithRole(ObjectType componentType) internal {
182
+ _addComponentTargetWithRole(componentType, 0);
183
+ }
184
+
185
+
186
+ function _addComponentTargetWithRole(ObjectType componentType, uint64 index) internal {
132
187
  _addTargetWithRole(
133
188
  getTargetName(),
134
- RoleIdLib.toComponentRoleId(componentType, 0),
189
+ RoleIdLib.toComponentRoleId(componentType, index),
135
190
  _toTargetRoleName(
136
191
  getTargetName()));
137
192
  }
138
193
 
194
+
139
195
  /// @dev Add a contract role for the provided role id and name.
140
196
  function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
141
197
  _addRole(
@@ -173,11 +229,13 @@ contract Authorization
173
229
  }
174
230
  }
175
231
 
232
+
176
233
  /// @dev Use this method to to add an authorized target.
177
234
  function _addTarget(string memory name) internal {
178
235
  _addTargetWithRole(name, RoleIdLib.zero(), "");
179
236
  }
180
237
 
238
+
181
239
  /// @dev Use this method to authorize the specified role to access the target.
182
240
  function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
183
241
  internal
@@ -188,6 +246,7 @@ contract Authorization
188
246
  return _authorizedFunctions[targetStr][authorizedRoleId];
189
247
  }
190
248
 
249
+
191
250
  /// @dev Use this method to authorize a specific function authorization
192
251
  function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
193
252
  functions.push(
@@ -197,13 +256,25 @@ contract Authorization
197
256
  createdAt: TimestampLib.blockTimestamp()}));
198
257
  }
199
258
 
200
- function _toTargetRoleName(string memory targetName) internal view returns (string memory) {
259
+
260
+ /// @dev role id for targets registry, staking and instance
261
+ function _toTargetRoleId(ObjectType targetDomain)
262
+ internal
263
+ pure
264
+ returns (RoleId targetRoleId)
265
+ {
266
+ return RoleIdLib.roleForType(targetDomain);
267
+ }
268
+
269
+
270
+ function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
201
271
  return string(
202
272
  abi.encodePacked(
203
273
  targetName,
204
274
  ROLE_NAME_SUFFIX));
205
275
  }
206
276
 
277
+
207
278
  /// @dev creates a role info object from the provided parameters
208
279
  function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
209
280
  return RoleInfo({
@@ -211,7 +282,8 @@ contract Authorization
211
282
  adminRoleId: adminRoleId,
212
283
  roleType: roleType,
213
284
  maxMemberCount: maxMemberCount,
214
- createdAt: TimestampLib.blockTimestamp()});
285
+ createdAt: TimestampLib.blockTimestamp(),
286
+ pausedAt: TimestampLib.max()});
215
287
  }
216
288
  }
217
289
 
@@ -21,6 +21,7 @@ interface IAccess {
21
21
  uint32 maxMemberCount;
22
22
  Str name;
23
23
  Timestamp createdAt;
24
+ Timestamp pausedAt;
24
25
  }
25
26
 
26
27
  struct TargetInfo {
@@ -41,9 +41,10 @@ interface IAccessAdmin is
41
41
  // grant/revoke/renounce role
42
42
  error ErrorRoleUnknown(RoleId roleId);
43
43
  error ErrorRoleIsLocked(RoleId roleId);
44
- error ErrorRoleIsDisabled(RoleId roleId);
44
+ error ErrorRoleIsPaused(RoleId roleId);
45
45
  error ErrorRoleMembersLimitReached(RoleId roleId, uint256 memberCountLimit);
46
- error ErrorRoleRemovalDisabled(RoleId roleId);
46
+ error ErrorRoleMemberNotContract(RoleId roleId, address notContract);
47
+ error ErrorRoleMemberRemovalDisabled(RoleId roleId, address expectedMember);
47
48
 
48
49
  // create target
49
50
  error ErrorTargetAlreadyCreated(address target, string name);
@@ -54,6 +55,7 @@ interface IAccessAdmin is
54
55
 
55
56
  // lock target
56
57
  error ErrorTagetNotLockable();
58
+ error ErrorTargetAlreadyLocked(address target, bool isLocked);
57
59
 
58
60
  // authorize target functions
59
61
  error ErrorAuthorizeForAdminRoleInvalid(address target);
@@ -131,6 +133,5 @@ interface IAccessAdmin is
131
133
 
132
134
  function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) external view returns (RoleInfo memory);
133
135
  function toFunction(bytes4 selector, string memory name) external view returns (FunctionInfo memory);
134
- function isAccessManaged(address target) external view returns (bool);
135
136
  function deployer() external view returns (address);
136
137
  }
@@ -11,16 +11,18 @@ interface IAuthorization is
11
11
  IAccess
12
12
  {
13
13
 
14
- /// @dev Returns the release (VersionPart) for which the authorizations are defined by this contract.
15
- /// Matches with the release returned by the linked service authorization.
16
- function getRelease() external view returns(VersionPart release);
17
-
18
- /// @dev Returns the list of involved roles.
19
- function getRoles() external view returns(RoleId[] memory roles);
14
+ /// @dev Returns the list of service targets.
15
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
20
16
 
21
17
  /// @dev Returns the service role for the specified service domain.
22
18
  function getServiceRole(ObjectType serviceDomain) external pure returns (RoleId serviceRoleId);
23
19
 
20
+ /// @dev Returns the service target for the specified domain.
21
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
22
+
23
+ /// @dev Returns the list of involved roles.
24
+ function getRoles() external view returns(RoleId[] memory roles);
25
+
24
26
  /// @dev Returns the name for the provided role id.
25
27
  function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
26
28
 
@@ -33,7 +35,7 @@ interface IAuthorization is
33
35
  function getTargetName() external view returns (string memory name);
34
36
 
35
37
  /// @dev Returns the main target.
36
- function getTarget() external view returns(Str target);
38
+ function getMainTarget() external view returns(Str target);
37
39
 
38
40
  /// @dev Returns the complete list of targets.
39
41
  function getTargets() external view returns(Str[] memory targets);
@@ -50,5 +52,9 @@ interface IAuthorization is
50
52
 
51
53
  /// @dev For the given target and role id the list of authorized functions is returned
52
54
  function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions);
55
+
56
+ /// @dev Returns the release (VersionPart) for which the authorizations are defined by this contract.
57
+ /// Matches with the release returned by the linked service authorization.
58
+ function getRelease() external view returns(VersionPart release);
53
59
  }
54
60
 
@@ -1,11 +1,13 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
+
4
6
  import {IAccess} from "../authorization/IAccess.sol";
5
7
  import {ObjectType} from "../type/ObjectType.sol";
6
8
  import {VersionPart} from "../type/Version.sol";
7
9
 
8
- interface IServiceAuthorization {
10
+ interface IServiceAuthorization is IERC165 {
9
11
 
10
12
  /// @dev Returns the commit hash representing the deployed release
11
13
  function getCommitHash()
@@ -0,0 +1,38 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
+
6
+ abstract contract ReleaseAccessManager is
7
+ AccessManager
8
+ {
9
+ bool private _releaseIsLocked = false;
10
+
11
+ function setReleaseLocked(bool locked)
12
+ external
13
+ onlyAuthorized()
14
+ {
15
+ _releaseIsLocked = locked;
16
+ }
17
+
18
+ function isReleaseLocked()
19
+ external
20
+ view
21
+ returns (bool isLocked)
22
+ {
23
+ return _releaseIsLocked;
24
+ }
25
+
26
+ function isTargetClosed(address target)
27
+ public
28
+ virtual override
29
+ view
30
+ returns (bool)
31
+ {
32
+ if (_releaseIsLocked) {
33
+ return true;
34
+ }
35
+
36
+ return super.isTargetClosed(target);
37
+ }
38
+ }
@@ -1,6 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
+
4
6
  import {IAccess} from "../authorization/IAccess.sol";
5
7
  import {ObjectType} from "../type/ObjectType.sol";
6
8
  import {IServiceAuthorization} from "./IServiceAuthorization.sol";
@@ -10,30 +12,36 @@ import {TimestampLib} from "../type/Timestamp.sol";
10
12
  import {VersionPart, VersionPartLib} from "../type/Version.sol";
11
13
 
12
14
  /// @dev Base contract for release specific service authorization contracts.
13
- contract ServiceAuthorization
14
- is IServiceAuthorization
15
+ contract ServiceAuthorization is
16
+ IServiceAuthorization
15
17
  {
16
- uint256 public constant GIF_VERSION_3 = 3;
18
+ uint256 public constant COMMIT_HASH_LENGTH = 40;
19
+ uint256 public constant GIF_INITIAL_VERSION = 3;
17
20
 
18
- string private _commitHash;
21
+ uint256 public immutable VERSION;
22
+ string public COMMIT_HASH;
19
23
 
20
24
  ObjectType[] internal _serviceDomains;
21
25
  mapping(ObjectType domain => address service) internal _serviceAddress;
22
26
  mapping(ObjectType domain => ObjectType[] authorizedDomains) internal _authorizedDomains;
23
27
  mapping(ObjectType domain => mapping(ObjectType authorizedDomain => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
24
28
 
25
- constructor(string memory commitHash) {
26
- _commitHash = commitHash;
29
+ constructor(string memory commitHash, uint256 version) {
30
+ assert(bytes(commitHash).length == COMMIT_HASH_LENGTH);
31
+ assert(version >= GIF_INITIAL_VERSION);
32
+
33
+ COMMIT_HASH = commitHash;
34
+ VERSION = version;
27
35
  _setupDomains();
28
36
  _setupDomainAuthorizations();
29
37
  }
30
38
 
31
39
  function getCommitHash() external view returns(string memory commitHash) {
32
- return _commitHash;
40
+ return COMMIT_HASH;
33
41
  }
34
42
 
35
43
  function getRelease() external view returns(VersionPart release) {
36
- return VersionPartLib.toVersionPart(GIF_VERSION_3);
44
+ return VersionPartLib.toVersionPart(VERSION);
37
45
  }
38
46
 
39
47
  function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
@@ -56,6 +64,15 @@ contract ServiceAuthorization
56
64
  return _authorizedFunctions[serviceDomain][authorizedDomain];
57
65
  }
58
66
 
67
+ // ERC165
68
+ function supportsInterface(bytes4 interfaceId) public pure returns (bool) {
69
+ return (
70
+ interfaceId == type(IServiceAuthorization).interfaceId ||
71
+ interfaceId == type(IERC165).interfaceId
72
+ );
73
+ }
74
+
75
+
59
76
  /// @dev Overwrite this function for a specific realease.
60
77
  function _setupDomains() internal virtual {}
61
78
 
@@ -86,5 +103,4 @@ contract ServiceAuthorization
86
103
  name: StrLib.toStr(name),
87
104
  createdAt: TimestampLib.blockTimestamp()}));
88
105
  }
89
- }
90
-
106
+ }
@@ -2,6 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Distribution} from "./Distribution.sol";
5
+ import {DISTRIBUTOR} from "../type/ObjectType.sol";
5
6
  import {IAuthorization} from "../authorization/IAuthorization.sol";
6
7
  import {NftId} from "../type/NftId.sol";
7
8
  import {ReferralId} from "../type/Referral.sol";
@@ -43,8 +44,8 @@ contract BasicDistribution is
43
44
  )
44
45
  external
45
46
  virtual
46
- onlyOwner()
47
47
  restricted()
48
+ onlyOwner()
48
49
  returns (DistributorType distributorType)
49
50
  {
50
51
  return _createDistributorType(
@@ -66,24 +67,25 @@ contract BasicDistribution is
66
67
  )
67
68
  external
68
69
  virtual
69
- onlyOwner()
70
70
  restricted()
71
+ onlyOwner()
71
72
  returns(NftId distributorNftId)
72
73
  {
73
74
  return _createDistributor(distributor, distributorType, data);
74
75
  }
75
76
 
76
- function updateDistributorType(
77
+ function changeDistributorType(
77
78
  NftId distributorNftId,
78
79
  DistributorType distributorType,
79
80
  bytes memory data
80
81
  )
81
82
  external
82
83
  virtual
83
- onlyOwner()
84
84
  restricted()
85
+ onlyOwner()
86
+ onlyNftOfType(distributorNftId, DISTRIBUTOR())
85
87
  {
86
- _updateDistributorType(distributorNftId, distributorType, data);
88
+ _changeDistributorType(distributorNftId, distributorType, data);
87
89
  }
88
90
 
89
91
  /**
@@ -99,8 +101,8 @@ contract BasicDistribution is
99
101
  )
100
102
  external
101
103
  virtual
102
- onlyDistributor()
103
104
  restricted()
105
+ onlyDistributor()
104
106
  returns (ReferralId referralId)
105
107
  {
106
108
  NftId distributorNftId = getDistributorNftId(msg.sender);
@@ -132,7 +134,6 @@ contract BasicDistribution is
132
134
  initialOwner,
133
135
  name,
134
136
  token,
135
- "", // registry data
136
137
  ""); // component specifc data
137
138
  }
138
139
  }
@@ -37,7 +37,7 @@ contract BasicDistributionAuthorization
37
37
  _authorize(functions, BasicDistribution.setFees.selector, "setFees");
38
38
  _authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
39
39
  _authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
40
- _authorize(functions, BasicDistribution.updateDistributorType.selector, "updateDistributorType");
40
+ _authorize(functions, BasicDistribution.changeDistributorType.selector, "changeDistributorType");
41
41
  _authorize(functions, BasicDistribution.createReferral.selector, "createReferral");
42
42
 
43
43
  _authorize(functions, IInstanceLinkedComponent.withdrawFees.selector, "withdrawFees");