@etherisc/gif-next 0.0.2-b147315-239 → 0.0.2-b1a32e7-488

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 (589) hide show
  1. package/README.md +67 -8
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1494 -0
  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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
  14. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  16. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +615 -0
  18. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  20. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +404 -369
  22. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +382 -0
  24. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
  26. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  27. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  28. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1230 -0
  30. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +644 -0
  32. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +124 -589
  34. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +467 -265
  36. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +151 -109
  38. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  39. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +143 -268
  40. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  41. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +307 -63
  42. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  44. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  46. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
  48. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  50. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
  52. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  53. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1431 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  66. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  67. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +221 -55
  72. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +151 -118
  74. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  75. package/artifacts/contracts/instance/Instance.sol/Instance.json +232 -183
  76. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1581 -253
  78. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +716 -0
  80. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1100 -338
  82. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +171 -343
  84. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +94 -118
  86. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +666 -525
  88. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  89. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  90. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  92. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  94. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  96. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +48 -7
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  98. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  100. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  101. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +632 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +141 -126
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +127 -398
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +644 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +331 -204
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +206 -29
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +132 -379
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -312
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +124 -662
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +653 -532
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +194 -178
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +100 -90
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +644 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  159. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  165. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  167. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +260 -237
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +458 -308
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -310
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  181. package/artifacts/contracts/product/Product.sol/Product.json +258 -536
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +359 -55
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +72 -152
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +585 -112
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +666 -549
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +46 -28
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1337 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +82 -16
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +5 -5
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  217. package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +449 -555
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +134 -122
  222. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +414 -233
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +127 -123
  238. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  240. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  242. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  244. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  246. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  248. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +112 -351
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  256. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +46 -78
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +40 -22
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  269. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  270. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -122
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +148 -16
  281. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  282. package/artifacts/contracts/staking/Staking.sol/Staking.json +281 -369
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  286. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -28
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +129 -94
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +31 -63
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +201 -164
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +191 -154
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +69 -23
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  312. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  314. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  318. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +59 -4
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +181 -14
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  336. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  338. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  339. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  340. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
  345. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  346. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  348. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  350. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  354. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  356. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  357. package/contracts/accounting/AccountingService.sol +262 -0
  358. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  359. package/contracts/accounting/IAccountingService.sol +45 -0
  360. package/contracts/authorization/AccessAdmin.sol +704 -0
  361. package/contracts/authorization/AccessAdminLib.sol +183 -0
  362. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  363. package/contracts/authorization/Authorization.sol +365 -0
  364. package/contracts/authorization/IAccess.sol +49 -0
  365. package/contracts/authorization/IAccessAdmin.sol +170 -0
  366. package/contracts/authorization/IAuthorization.sol +80 -0
  367. package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -6
  368. package/contracts/{registry → authorization}/ServiceAuthorization.sol +41 -25
  369. package/contracts/distribution/BasicDistribution.sol +143 -0
  370. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  371. package/contracts/distribution/Distribution.sol +123 -138
  372. package/contracts/distribution/DistributionService.sol +199 -111
  373. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  374. package/contracts/distribution/IDistributionComponent.sol +19 -42
  375. package/contracts/distribution/IDistributionService.sol +44 -22
  376. package/contracts/examples/fire/DamageLevel.sol +59 -0
  377. package/contracts/examples/fire/FirePool.sol +90 -0
  378. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  379. package/contracts/examples/fire/FireProduct.sol +437 -0
  380. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  381. package/contracts/examples/fire/FireUSD.sol +26 -0
  382. package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
  383. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  385. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  386. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  388. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  389. package/contracts/instance/BundleSet.sol +130 -0
  390. package/contracts/instance/IInstance.sol +67 -49
  391. package/contracts/instance/IInstanceService.sol +29 -42
  392. package/contracts/instance/Instance.sol +157 -124
  393. package/contracts/instance/InstanceAdmin.sol +363 -244
  394. package/contracts/instance/InstanceAuthorizationV3.sol +235 -0
  395. package/contracts/instance/InstanceReader.sol +306 -48
  396. package/contracts/instance/InstanceService.sol +224 -201
  397. package/contracts/instance/InstanceServiceManager.sol +8 -13
  398. package/contracts/instance/InstanceStore.sol +29 -3
  399. package/contracts/instance/RiskSet.sol +118 -0
  400. package/contracts/instance/base/ObjectCounter.sol +1 -2
  401. package/contracts/instance/base/ObjectLifecycle.sol +62 -45
  402. package/contracts/instance/base/ObjectSet.sol +77 -0
  403. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  404. package/contracts/instance/module/IBundle.sol +1 -1
  405. package/contracts/instance/module/IComponents.sol +14 -15
  406. package/contracts/instance/module/IDistribution.sol +5 -3
  407. package/contracts/instance/module/IPolicy.sol +26 -25
  408. package/contracts/instance/module/IRisk.sol +3 -0
  409. package/contracts/mock/Dip.sol +1 -1
  410. package/contracts/oracle/BasicOracle.sol +47 -0
  411. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  412. package/contracts/oracle/IOracle.sol +16 -0
  413. package/contracts/oracle/IOracleComponent.sol +2 -1
  414. package/contracts/oracle/IOracleService.sol +2 -1
  415. package/contracts/oracle/Oracle.sol +64 -53
  416. package/contracts/oracle/OracleService.sol +113 -81
  417. package/contracts/oracle/OracleServiceManager.sol +8 -11
  418. package/contracts/pool/BasicPool.sol +175 -0
  419. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  420. package/contracts/pool/BundleService.sol +204 -105
  421. package/contracts/pool/BundleServiceManager.sol +8 -11
  422. package/contracts/pool/IBundleService.sol +31 -22
  423. package/contracts/pool/IPoolComponent.sol +20 -70
  424. package/contracts/pool/IPoolService.sol +90 -75
  425. package/contracts/pool/Pool.sol +209 -163
  426. package/contracts/pool/PoolLib.sol +216 -0
  427. package/contracts/pool/PoolService.sol +546 -241
  428. package/contracts/pool/PoolServiceManager.sol +6 -9
  429. package/contracts/product/ApplicationService.sol +98 -78
  430. package/contracts/product/ApplicationServiceManager.sol +6 -6
  431. package/contracts/product/BasicProduct.sol +51 -0
  432. package/contracts/product/BasicProductAuthorization.sol +56 -0
  433. package/contracts/product/ClaimService.sol +365 -175
  434. package/contracts/product/ClaimServiceManager.sol +6 -6
  435. package/contracts/product/IApplicationService.sol +9 -2
  436. package/contracts/product/IClaimService.sol +44 -8
  437. package/contracts/product/IPolicyService.sol +53 -36
  438. package/contracts/product/IPricingService.sol +11 -10
  439. package/contracts/product/IProductComponent.sol +29 -9
  440. package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
  441. package/contracts/product/PolicyService.sol +458 -269
  442. package/contracts/product/PolicyServiceLib.sol +65 -0
  443. package/contracts/product/PolicyServiceManager.sol +6 -9
  444. package/contracts/product/PricingService.sol +71 -62
  445. package/contracts/product/PricingServiceManager.sol +6 -9
  446. package/contracts/product/Product.sol +231 -139
  447. package/contracts/product/RiskService.sol +154 -0
  448. package/contracts/product/RiskServiceManager.sol +39 -0
  449. package/contracts/registry/ChainNft.sol +72 -40
  450. package/contracts/registry/IRegistry.sol +74 -32
  451. package/contracts/registry/IRegistryService.sol +3 -10
  452. package/contracts/registry/IRelease.sol +26 -0
  453. package/contracts/registry/ITransferInterceptor.sol +1 -2
  454. package/contracts/registry/Registry.sol +368 -220
  455. package/contracts/registry/RegistryAdmin.sol +174 -249
  456. package/contracts/registry/RegistryAuthorization.sol +267 -0
  457. package/contracts/registry/RegistryService.sol +41 -66
  458. package/contracts/registry/RegistryServiceManager.sol +5 -5
  459. package/contracts/registry/ReleaseAdmin.sol +253 -0
  460. package/contracts/registry/ReleaseLifecycle.sol +14 -10
  461. package/contracts/registry/ReleaseRegistry.sol +517 -0
  462. package/contracts/registry/ServiceAuthorizationV3.sol +191 -60
  463. package/contracts/registry/TokenRegistry.sol +8 -10
  464. package/contracts/shared/Component.sol +73 -127
  465. package/contracts/shared/ComponentService.sol +398 -395
  466. package/contracts/shared/ComponentServiceManager.sol +10 -7
  467. package/contracts/shared/ComponentVerifyingService.sol +29 -18
  468. package/contracts/shared/ContractLib.sol +281 -0
  469. package/contracts/shared/IComponent.sol +8 -17
  470. package/contracts/shared/IComponentService.sol +38 -39
  471. package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
  472. package/contracts/shared/ILifecycle.sol +3 -1
  473. package/contracts/shared/INftOwnable.sol +2 -0
  474. package/contracts/shared/IPolicyHolder.sol +12 -22
  475. package/contracts/shared/IRegisterable.sol +23 -1
  476. package/contracts/shared/IService.sol +4 -6
  477. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
  478. package/contracts/shared/InstanceLinkedComponent.sol +96 -43
  479. package/contracts/shared/KeyValueStore.sol +2 -2
  480. package/contracts/shared/Lifecycle.sol +31 -14
  481. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  482. package/contracts/shared/NftOwnable.sol +31 -11
  483. package/contracts/shared/PolicyHolder.sol +17 -57
  484. package/contracts/shared/Registerable.sol +52 -21
  485. package/contracts/shared/RegistryLinked.sol +9 -14
  486. package/contracts/shared/Service.sol +18 -36
  487. package/contracts/shared/TokenHandler.sol +310 -26
  488. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  489. package/contracts/staking/IStaking.sol +20 -13
  490. package/contracts/staking/IStakingService.sol +28 -9
  491. package/contracts/staking/Staking.sol +117 -84
  492. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
  493. package/contracts/staking/StakingLifecycle.sol +5 -6
  494. package/contracts/staking/StakingManager.sol +10 -12
  495. package/contracts/staking/StakingReader.sol +26 -33
  496. package/contracts/staking/StakingService.sol +90 -37
  497. package/contracts/staking/StakingServiceManager.sol +8 -7
  498. package/contracts/staking/StakingStore.sol +14 -23
  499. package/contracts/staking/TargetManagerLib.sol +7 -3
  500. package/contracts/type/Amount.sol +27 -5
  501. package/contracts/type/Blocknumber.sol +7 -1
  502. package/contracts/type/ClaimId.sol +6 -1
  503. package/contracts/type/Key32.sol +2 -2
  504. package/contracts/type/Key32Set.sol +62 -0
  505. package/contracts/type/NftId.sol +7 -0
  506. package/contracts/type/ObjectType.sol +80 -27
  507. package/contracts/type/PayoutId.sol +10 -10
  508. package/contracts/type/Referral.sol +1 -0
  509. package/contracts/type/RiskId.sol +38 -6
  510. package/contracts/type/RoleId.sol +75 -94
  511. package/contracts/type/Seconds.sol +21 -1
  512. package/contracts/type/Selector.sol +5 -0
  513. package/contracts/type/StateId.sol +15 -1
  514. package/contracts/type/Timestamp.sol +10 -5
  515. package/contracts/type/UFixed.sol +40 -121
  516. package/contracts/type/Version.sol +57 -6
  517. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  518. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  519. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  520. package/package.json +9 -6
  521. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  522. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
  523. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  524. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  525. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  526. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
  527. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  528. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  529. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  530. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  531. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  532. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  533. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  534. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  535. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  536. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1235
  537. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  538. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
  539. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  540. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  541. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  542. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  543. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  544. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  545. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  546. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  547. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  548. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  549. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  550. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  551. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  552. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  553. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  554. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  555. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  556. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  557. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  558. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  559. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  560. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  561. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  562. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
  563. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  564. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  565. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  566. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  567. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  568. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  569. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
  570. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  571. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
  572. package/contracts/instance/BundleManager.sol +0 -126
  573. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  574. package/contracts/instance/base/ObjectManager.sol +0 -80
  575. package/contracts/instance/module/IAccess.sol +0 -46
  576. package/contracts/product/ProductService.sol +0 -124
  577. package/contracts/product/ProductServiceManager.sol +0 -42
  578. package/contracts/registry/ReleaseManager.sol +0 -501
  579. package/contracts/shared/AccessAdmin.sol +0 -759
  580. package/contracts/shared/AccessManagerCustom.sol +0 -741
  581. package/contracts/shared/AccessManagerExtended.sol +0 -481
  582. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  583. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  584. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  585. package/contracts/shared/IAccessAdmin.sol +0 -168
  586. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  587. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
  588. package/contracts/shared/InitializableCustom.sol +0 -177
  589. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -0,0 +1,183 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+
6
+ import {IAccess} from "./IAccess.sol";
7
+ import {IAccessAdmin} from "./IAccessAdmin.sol";
8
+ import {IAuthorization} from "./IAuthorization.sol";
9
+ import {IRegistry} from "../registry/IRegistry.sol";
10
+
11
+ import {ContractLib} from "../shared/ContractLib.sol";
12
+ import {ObjectType} from "../type/ObjectType.sol";
13
+ import {RoleId} from "../type/RoleId.sol";
14
+ import {SelectorLib} from "../type/Selector.sol";
15
+ import {Str, StrLib} from "../type/String.sol";
16
+ import {TimestampLib} from "../type/Timestamp.sol";
17
+ import {VersionPart} from "../type/Version.sol";
18
+
19
+
20
+ library AccessAdminLib { // ACCESS_ADMIN_LIB
21
+
22
+ function checkRoleCreation(
23
+ IAccessAdmin accessAdmin,
24
+ RoleId roleId,
25
+ IAccess.RoleInfo memory info
26
+ )
27
+ public
28
+ view
29
+ {
30
+ // check role does not yet exist // ACCESS_ADMIN_LIB role creation checks
31
+ if(accessAdmin.roleExists(roleId)) {
32
+ revert IAccessAdmin.ErrorAccessAdminRoleAlreadyCreated(
33
+ roleId,
34
+ accessAdmin.getRoleInfo(roleId).name.toString());
35
+ }
36
+
37
+ // check admin role exists
38
+ if(!accessAdmin.roleExists(info.adminRoleId)) {
39
+ revert IAccessAdmin.ErrorAccessAdminRoleAdminNotExisting(info.adminRoleId);
40
+ }
41
+
42
+ // check role name is not empty
43
+ if(info.name.length() == 0) {
44
+ revert IAccessAdmin.ErrorAccessAdminRoleNameEmpty(roleId);
45
+ }
46
+
47
+ // check role name is not used for another role
48
+ RoleId roleIdForName = accessAdmin.getRoleForName(StrLib.toString(info.name));
49
+ if(roleIdForName.gtz()) {
50
+ revert IAccessAdmin.ErrorAccessAdminRoleNameAlreadyExists(
51
+ roleId,
52
+ info.name.toString(),
53
+ roleIdForName);
54
+ }
55
+ }
56
+
57
+ function checkTargetCreation(
58
+ IAccessAdmin accessAdmin,
59
+ address target,
60
+ string memory targetName,
61
+ bool checkAuthority
62
+ )
63
+ public
64
+ view
65
+ {
66
+ // check target does not yet exist
67
+ if(accessAdmin.targetExists(target)) {
68
+ revert IAccessAdmin.ErrorAccessAdminTargetAlreadyCreated(
69
+ target,
70
+ accessAdmin.getTargetInfo(target).name.toString());
71
+ }
72
+
73
+ // check target name is not empty
74
+ Str name = StrLib.toStr(targetName);
75
+ if(name.length() == 0) {
76
+ revert IAccessAdmin.ErrorAccessAdminTargetNameEmpty(target);
77
+ }
78
+
79
+ // check target name is not used for another target
80
+ address targetForName = accessAdmin.getTargetForName(name);
81
+ if(targetForName != address(0)) {
82
+ revert IAccessAdmin.ErrorAccessAdminTargetNameAlreadyExists(
83
+ target,
84
+ targetName,
85
+ targetForName);
86
+ }
87
+
88
+ // check target is an access managed contract
89
+ if (!ContractLib.isAccessManaged(target)) {
90
+ revert IAccessAdmin.ErrorAccessAdminTargetNotAccessManaged(target);
91
+ }
92
+
93
+ // check target shares authority with this contract
94
+ if (checkAuthority) {
95
+ address targetAuthority = AccessManagedUpgradeable(target).authority();
96
+ if (targetAuthority != accessAdmin.authority()) {
97
+ revert IAccessAdmin.ErrorAccessAdminTargetAuthorityMismatch(accessAdmin.authority(), targetAuthority);
98
+ }
99
+ }
100
+
101
+ }
102
+
103
+
104
+ function checkAuthorization(
105
+ address authorizationOld,
106
+ address authorization,
107
+ ObjectType expectedDomain,
108
+ VersionPart expectedRelease,
109
+ bool checkAlreadyInitialized
110
+ )
111
+ public
112
+ view
113
+ {
114
+ // checks
115
+ // check not yet initialized
116
+ if (checkAlreadyInitialized && authorizationOld != address(0)) {
117
+ revert IAccessAdmin.ErrorAccessAdminAlreadyInitialized(authorizationOld);
118
+ }
119
+
120
+ // check contract type matches
121
+ if (!ContractLib.supportsInterface(authorization, type(IAuthorization).interfaceId)) {
122
+ revert IAccessAdmin.ErrorAccessAdminNotAuthorization(authorization);
123
+ }
124
+
125
+ // check domain matches
126
+ ObjectType domain = IAuthorization(authorization).getDomain();
127
+ if (domain != expectedDomain) {
128
+ revert IAccessAdmin.ErrorAccessAdminDomainMismatch(authorization, expectedDomain, domain);
129
+ }
130
+
131
+ // check release matches
132
+ VersionPart authorizationRelease = IAuthorization(authorization).getRelease();
133
+ if (authorizationRelease != expectedRelease) {
134
+ revert IAccessAdmin.ErrorAccessAdminReleaseMismatch(authorization, expectedRelease, authorizationRelease);
135
+ }
136
+ }
137
+
138
+
139
+ function checkIsRegistered(
140
+ address registry,
141
+ address target,
142
+ ObjectType expectedType
143
+ )
144
+ public
145
+ view
146
+ {
147
+ ObjectType tagetType = IRegistry(registry).getObjectInfo(target).objectType;
148
+ if (tagetType.eqz()) {
149
+ revert IAccessAdmin.ErrorAccessAdminNotRegistered(target);
150
+ }
151
+
152
+ if (tagetType != expectedType) {
153
+ revert IAccessAdmin.ErrorAccessAdminTargetTypeMismatch(target, expectedType, tagetType);
154
+ }
155
+ }
156
+
157
+ function toRole(RoleId adminRoleId, IAccessAdmin.RoleType roleType, uint32 maxMemberCount, string memory name)
158
+ public
159
+ view
160
+ returns (IAccess.RoleInfo memory)
161
+ {
162
+ return IAccess.RoleInfo({
163
+ name: StrLib.toStr(name),
164
+ adminRoleId: adminRoleId,
165
+ roleType: roleType,
166
+ maxMemberCount: maxMemberCount,
167
+ createdAt: TimestampLib.blockTimestamp(),
168
+ pausedAt: TimestampLib.max()
169
+ });
170
+ }
171
+
172
+ function toFunction(bytes4 selector, string memory name)
173
+ public
174
+ view
175
+ returns (IAccess.FunctionInfo memory)
176
+ {
177
+ return IAccess.FunctionInfo({
178
+ name: StrLib.toStr(name),
179
+ selector: SelectorLib.toSelector(selector),
180
+ createdAt: TimestampLib.blockTimestamp()});
181
+ }
182
+
183
+ }
@@ -0,0 +1,158 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
5
+ import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
6
+
7
+ import {InitializableERC165} from "../shared/InitializableERC165.sol";
8
+ import {RegistryLinked} from "../shared/RegistryLinked.sol";
9
+ import {VersionPart} from "../type/Version.sol";
10
+
11
+
12
+ /// @dev An AccessManager based on OpenZeppelin that is cloneable and has a central lock property.
13
+ /// The lock property allows to lock all services of a release in a central place.
14
+ /// Cloned by upon release preparation and instance cloning.
15
+ contract AccessManagerCloneable is
16
+ AccessManagerUpgradeable,
17
+ InitializableERC165,
18
+ RegistryLinked
19
+ {
20
+ error ErrorAccessManagerCallerNotAdmin(address caller);
21
+ error ErrorAccessManagerRegistryAlreadySet(address registry);
22
+ error ErrorAccessManagerInvalidRelease(VersionPart release);
23
+
24
+ error ErrorAccessManagerTargetAdminLocked(address target);
25
+ error ErrorAccessManagerCallerAdminLocked(address caller);
26
+
27
+ VersionPart private _release;
28
+ bool private _isLocked;
29
+
30
+
31
+ modifier onlyAdminRole() {
32
+ (bool isMember, ) = hasRole(ADMIN_ROLE, msg.sender);
33
+ if(!isMember) {
34
+ revert ErrorAccessManagerCallerNotAdmin(msg.sender);
35
+ }
36
+ _;
37
+ }
38
+
39
+
40
+ function initialize(address admin)
41
+ public
42
+ initializer()
43
+ {
44
+ __ERC165_init();
45
+ __AccessManager_init(admin);
46
+
47
+ _registerInterface(type(IAccessManager).interfaceId);
48
+ }
49
+
50
+
51
+ /// @dev Completes the setup of the access manager.
52
+ /// Links the access manager to the registry and sets the release version.
53
+ function completeSetup(
54
+ address registry,
55
+ VersionPart release
56
+ )
57
+ external
58
+ onlyAdminRole
59
+ reinitializer(uint64(release.toInt()))
60
+ {
61
+ _checkAndSetRegistry(registry);
62
+ _checkAndSetRelease(release);
63
+ }
64
+
65
+ // /// @dev Completes the setup of the access manager.
66
+ // /// Links the access manager to the registry and sets the release version.
67
+ // function completeSetup(
68
+ // address registry,
69
+ // VersionPart release,
70
+ // bool verifyRelease
71
+ // )
72
+ // public
73
+ // onlyAdminRole
74
+ // reinitializer(uint64(release.toInt()))
75
+ // {
76
+ // _checkAndSetRegistry(registry);
77
+
78
+ // if (verifyRelease) {
79
+ // _checkAndSetRelease(release);
80
+ // }
81
+ // }
82
+
83
+ /// @dev Returns true if the caller is authorized to call the target with the given selector and the manager lock is not set to locked.
84
+ /// Feturn values as in OpenZeppelin AccessManager.
85
+ /// For a locked manager the function reverts with ErrorAccessManagerTargetAdminLocked.
86
+ function canCall(
87
+ address caller,
88
+ address target,
89
+ bytes4 selector
90
+ )
91
+ public
92
+ view
93
+ virtual override
94
+ returns (
95
+ bool immediate,
96
+ uint32 delay
97
+ )
98
+ {
99
+ // locking of all contracts under control of this access manager
100
+ if (_isLocked) {
101
+ revert ErrorAccessManagerTargetAdminLocked(target);
102
+ }
103
+
104
+ (immediate, delay) = super.canCall(caller, target, selector);
105
+ }
106
+
107
+
108
+ /// @dev Locks/unlocks all services of this access manager.
109
+ /// Only the corresponding access admin can lock/unlock the services.
110
+ function setLocked(bool locked)
111
+ external
112
+ onlyAdminRole()
113
+ {
114
+ _isLocked = locked;
115
+ }
116
+
117
+
118
+ /// @dev Returns the release version of this access manager.
119
+ /// For the registry admin release 3 is returned.
120
+ /// For the release admin and the instance admin the actual release version is returned.
121
+ function getRelease() external view returns (VersionPart release) {
122
+ return _release;
123
+ }
124
+
125
+
126
+ /// @dev Returns true iff all contracts of this access manager are locked.
127
+ function isLocked()
128
+ public
129
+ view
130
+ returns (bool)
131
+ {
132
+ return _isLocked;
133
+ }
134
+
135
+
136
+ function _checkAndSetRelease(VersionPart release)
137
+ internal
138
+ {
139
+ if (!release.isValidRelease()) {
140
+ revert ErrorAccessManagerInvalidRelease(release);
141
+ }
142
+
143
+ _release = release;
144
+ }
145
+
146
+
147
+ function _checkAndSetRegistry(address registry)
148
+ internal
149
+ {
150
+ // checks
151
+ if(address(getRegistry()) != address(0)) {
152
+ revert ErrorAccessManagerRegistryAlreadySet(address(getRegistry()) );
153
+ }
154
+
155
+ // effects
156
+ __RegistryLinked_init(registry);
157
+ }
158
+ }
@@ -0,0 +1,365 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "./IAccess.sol";
5
+ import {IAuthorization} from "./IAuthorization.sol";
6
+
7
+ import {InitializableERC165} from "../shared/InitializableERC165.sol";
8
+ import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
9
+ import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
10
+ import {SelectorLib} from "../type/Selector.sol";
11
+ import {Str, StrLib} from "../type/String.sol";
12
+ import {TimestampLib} from "../type/Timestamp.sol";
13
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
14
+
15
+ contract Authorization is
16
+ InitializableERC165,
17
+ IAuthorization
18
+ {
19
+ uint256 public constant GIF_RELEASE = 3;
20
+
21
+ string public constant ROLE_NAME_SUFFIX = "Role";
22
+ string public constant SERVICE_ROLE_NAME_SUFFIX = "ServiceRole";
23
+
24
+ uint64 internal _nextGifContractRoleId;
25
+ ObjectType[] internal _serviceDomains;
26
+ mapping(ObjectType domain => Str target) internal _serviceTarget;
27
+
28
+ string internal _mainTargetName = "Component";
29
+ string internal _tokenHandlerName = "ComponentTH";
30
+
31
+ ObjectType internal _domain;
32
+ Str internal _mainTarget;
33
+ Str internal _tokenHandlerTarget;
34
+ Str[] internal _targets;
35
+
36
+ mapping(Str target => RoleId roleid) internal _targetRole;
37
+ mapping(Str target => bool exists) internal _targetExists;
38
+
39
+ RoleId[] internal _roles;
40
+ mapping(RoleId role => RoleInfo info) internal _roleInfo;
41
+
42
+ mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
43
+ mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
44
+
45
+
46
+ constructor(
47
+ string memory mainTargetName,
48
+ ObjectType targetDomain,
49
+ bool isComponent,
50
+ bool includeTokenHandler
51
+ )
52
+ {
53
+ // checks
54
+ if (bytes(mainTargetName).length == 0) {
55
+ revert ErrorAuthorizationMainTargetNameEmpty();
56
+ }
57
+
58
+ if (targetDomain == ObjectTypeLib.zero()) {
59
+ revert ErrorAuthorizationTargetDomainZero();
60
+ }
61
+
62
+ // effects
63
+ _initializeERC165();
64
+
65
+ _domain = targetDomain;
66
+ _mainTargetName = mainTargetName;
67
+ _mainTarget = StrLib.toStr(mainTargetName);
68
+ _nextGifContractRoleId = 10;
69
+
70
+ if (isComponent) {
71
+ if (targetDomain.eqz()) {
72
+ revert ErrorAuthorizationTargetDomainZero();
73
+ }
74
+
75
+ RoleId mainRoleId = RoleIdLib.toComponentRoleId(targetDomain, 0);
76
+ string memory mainRolName = _toTargetRoleName(_mainTargetName);
77
+
78
+ _addTargetWithRole(
79
+ _mainTargetName,
80
+ mainRoleId,
81
+ mainRolName);
82
+ } else {
83
+ _addGifContractTarget(_mainTargetName);
84
+ }
85
+ // setup use case specific parts
86
+ _setupServiceTargets();
87
+ _setupRoles(); // not including main target role
88
+ _setupTargets(); // not including main target (and token handler target)
89
+ _setupTargetAuthorizations(); // not including token handler target
90
+
91
+ // setup component token handler
92
+ if (includeTokenHandler) {
93
+ _tokenHandlerName = string(abi.encodePacked(mainTargetName, "TH"));
94
+ _tokenHandlerTarget = StrLib.toStr(_tokenHandlerName);
95
+ _addTarget(_tokenHandlerName);
96
+ _setupTokenHandlerAuthorizations();
97
+ }
98
+
99
+ _registerInterfaceNotInitializing(type(IAuthorization).interfaceId);
100
+ }
101
+
102
+ function getDomain() external view returns(ObjectType targetDomain) {
103
+ return _domain;
104
+ }
105
+
106
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
107
+ return _serviceDomains;
108
+ }
109
+
110
+ function getComponentRole(ObjectType componentDomain) public view returns(RoleId roleId) {
111
+ return RoleIdLib.toComponentRoleId(componentDomain, 0);
112
+ }
113
+
114
+ function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
115
+ return RoleIdLib.roleForTypeAndVersion(
116
+ serviceDomain,
117
+ getRelease());
118
+ }
119
+
120
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
121
+ return _serviceTarget[serviceDomain];
122
+ }
123
+
124
+ function getRoles() external view returns(RoleId[] memory roles) {
125
+ return _roles;
126
+ }
127
+
128
+ function roleExists(RoleId roleId) public view returns(bool exists) {
129
+ return _roleInfo[roleId].roleType != RoleType.Undefined;
130
+ }
131
+
132
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
133
+ return _roleInfo[roleId];
134
+ }
135
+
136
+ function getMainTargetName() public virtual view returns (string memory name) {
137
+ return _mainTargetName;
138
+ }
139
+
140
+ function getMainTarget() public view returns(Str) {
141
+ return _mainTarget;
142
+ }
143
+
144
+ function getTokenHandlerName() public view returns(string memory) {
145
+ return _tokenHandlerName;
146
+ }
147
+
148
+ function getTokenHandlerTarget() public view returns(Str) {
149
+ return _tokenHandlerTarget;
150
+ }
151
+
152
+ function getTarget(string memory targetName) public view returns(Str target) {
153
+ return StrLib.toStr(targetName);
154
+ }
155
+
156
+ function getTargets() external view returns(Str[] memory targets) {
157
+ return _targets;
158
+ }
159
+
160
+ function targetExists(Str target) external view returns(bool exists) {
161
+ return target == _mainTarget || _targetExists[target];
162
+ }
163
+
164
+ function getTargetRole(Str target) public view returns(RoleId roleId) {
165
+ return _targetRole[target];
166
+ }
167
+
168
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
169
+ return _authorizedRoles[target];
170
+ }
171
+
172
+ function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
173
+ return _authorizedFunctions[target][roleId];
174
+ }
175
+
176
+ function getRelease() public virtual pure returns(VersionPart release) {
177
+ return VersionPartLib.toVersionPart(GIF_RELEASE);
178
+ }
179
+
180
+ /// @dev Sets up the relevant service targets for the component.
181
+ /// Overwrite this function for use case specific authorizations.
182
+ function _setupServiceTargets() internal virtual { }
183
+
184
+ /// @dev Sets up the relevant (non-service) targets for the component.
185
+ /// Overwrite this function for use case specific authorizations.
186
+ function _setupTargets() internal virtual { }
187
+
188
+ /// @dev Sets up the relevant roles for the component.
189
+ /// Overwrite this function for use case specific authorizations.
190
+ function _setupRoles() internal virtual {}
191
+
192
+ /// @dev Sets up the relevant component's token handler authorizations.
193
+ /// Overwrite this function for use case specific authorizations.
194
+ function _setupTokenHandlerAuthorizations() internal virtual {}
195
+
196
+ /// @dev Sets up the relevant target authorizations for the component.
197
+ /// Overwrite this function for use case specific authorizations.
198
+ function _setupTargetAuthorizations() internal virtual {}
199
+
200
+ function _addGifContractTarget(string memory contractName) internal {
201
+
202
+ RoleId contractRoleId = RoleIdLib.toRoleId(_nextGifContractRoleId++);
203
+ string memory contractRoleName = string(
204
+ abi.encodePacked(
205
+ contractName,
206
+ ROLE_NAME_SUFFIX));
207
+
208
+ _addTargetWithRole(
209
+ contractName,
210
+ contractRoleId,
211
+ contractRoleName);
212
+ }
213
+
214
+ /// @dev Add the service target role for the specified service domain
215
+ function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
216
+ // add service domain
217
+ _serviceDomains.push(serviceDomain);
218
+
219
+ // get versioned target name
220
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
221
+ ObjectTypeLib.toName(serviceDomain),
222
+ "Service",
223
+ getRelease());
224
+
225
+ _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
226
+
227
+ RoleId serviceRoleId = getServiceRole(serviceDomain);
228
+ string memory serviceRoleName = ObjectTypeLib.toVersionedName(
229
+ ObjectTypeLib.toName(serviceDomain),
230
+ "ServiceRole",
231
+ getRelease());
232
+
233
+ _addTargetWithRole(
234
+ serviceTargetName,
235
+ serviceRoleId,
236
+ serviceRoleName);
237
+ }
238
+
239
+
240
+ /// @dev Use this method to to add an authorized role.
241
+ function _addRole(RoleId roleId, RoleInfo memory info) internal {
242
+ _roles.push(roleId);
243
+ _roleInfo[roleId] = info;
244
+ }
245
+
246
+
247
+ /// @dev Add a contract role for the provided role id and name.
248
+ function _addContractRole(RoleId roleId, string memory name) internal {
249
+ _addRole(
250
+ roleId,
251
+ _toRoleInfo(
252
+ ADMIN_ROLE(),
253
+ RoleType.Contract,
254
+ 1,
255
+ name));
256
+ }
257
+
258
+
259
+ /// @dev Add the versioned service role for the specified service domain
260
+ function _addServiceRole(ObjectType serviceDomain) internal {
261
+ _addContractRole(
262
+ getServiceRole(serviceDomain),
263
+ ObjectTypeLib.toVersionedName(
264
+ ObjectTypeLib.toName(serviceDomain),
265
+ SERVICE_ROLE_NAME_SUFFIX,
266
+ getRelease()));
267
+ }
268
+
269
+
270
+ /// @dev Add a contract role for the provided role id and name.
271
+ function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
272
+ _addRole(
273
+ roleId,
274
+ _toRoleInfo(
275
+ adminRoleId,
276
+ RoleType.Custom,
277
+ maxMemberCount,
278
+ name));
279
+ }
280
+
281
+
282
+ /// @dev Use this method to to add an authorized target together with its target role.
283
+ function _addTargetWithRole(
284
+ string memory targetName,
285
+ RoleId roleId,
286
+ string memory roleName
287
+ )
288
+ internal
289
+ {
290
+ // add target
291
+ Str target = StrLib.toStr(targetName);
292
+ _targets.push(target);
293
+
294
+ _targetExists[target] = true;
295
+
296
+ // link role to target if defined
297
+ if (roleId != RoleIdLib.zero()) {
298
+ // add role if new
299
+ if (!roleExists(roleId)) {
300
+ _addContractRole(roleId, roleName);
301
+ }
302
+
303
+ // link target to role
304
+ _targetRole[target] = roleId;
305
+ }
306
+ }
307
+
308
+
309
+ /// @dev Use this method to to add an authorized target.
310
+ function _addTarget(string memory name) internal {
311
+ _addTargetWithRole(name, RoleIdLib.zero(), "");
312
+ }
313
+
314
+
315
+ /// @dev Use this method to authorize the specified role to access the target.
316
+ function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
317
+ internal
318
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
319
+ {
320
+ Str targetStr = StrLib.toStr(target);
321
+ _authorizedRoles[targetStr].push(authorizedRoleId);
322
+ return _authorizedFunctions[targetStr][authorizedRoleId];
323
+ }
324
+
325
+
326
+ /// @dev Use this method to authorize a specific function authorization
327
+ function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
328
+ functions.push(
329
+ IAccess.FunctionInfo({
330
+ selector: SelectorLib.toSelector(selector),
331
+ name: StrLib.toStr(name),
332
+ createdAt: TimestampLib.blockTimestamp()}));
333
+ }
334
+
335
+
336
+ /// @dev role id for targets registry, staking and instance
337
+ function _toTargetRoleId(ObjectType targetDomain)
338
+ internal
339
+ pure
340
+ returns (RoleId targetRoleId)
341
+ {
342
+ return RoleIdLib.roleForType(targetDomain);
343
+ }
344
+
345
+
346
+ function _toTargetRoleName(string memory targetName) internal pure returns (string memory) {
347
+ return string(
348
+ abi.encodePacked(
349
+ targetName,
350
+ ROLE_NAME_SUFFIX));
351
+ }
352
+
353
+
354
+ /// @dev creates a role info object from the provided parameters
355
+ function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
356
+ return RoleInfo({
357
+ name: StrLib.toStr(name),
358
+ adminRoleId: adminRoleId,
359
+ roleType: roleType,
360
+ maxMemberCount: maxMemberCount,
361
+ createdAt: TimestampLib.blockTimestamp(),
362
+ pausedAt: TimestampLib.max()});
363
+ }
364
+ }
365
+