@etherisc/gif-next 0.0.2-d086e6d-456 → 0.0.2-d13bb9e-069

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 (675) hide show
  1. package/README.md +57 -93
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1013 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1012 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +198 -261
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +186 -357
  36. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1491 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1946 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1545 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1980 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +296 -2011
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +195 -95
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +353 -2827
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1062 -308
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +246 -316
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +132 -119
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3607 -0
  76. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  78. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  79. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  80. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  82. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  84. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  86. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +10 -118
  88. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  93. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  94. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  95. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  97. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  99. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  100. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  101. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  103. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  104. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +254 -209
  105. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  106. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +236 -207
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  111. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  112. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +299 -399
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1431 -0
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  119. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  120. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +312 -64
  121. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +937 -0
  123. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1267 -0
  125. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +358 -360
  127. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  128. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1612 -0
  129. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
  131. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  132. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  133. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  134. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  135. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  136. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +339 -408
  137. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  138. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  139. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  140. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1397 -0
  141. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  143. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  144. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +129 -111
  145. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  146. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +913 -0
  147. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  148. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +896 -0
  149. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  150. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +110 -207
  151. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  152. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +319 -199
  153. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  154. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +12 -86
  155. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  156. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1268 -0
  157. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  158. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +770 -0
  159. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  160. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  161. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  162. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  163. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  164. package/artifacts/contracts/product/Product.sol/Product.json +1056 -0
  165. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  166. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  167. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  168. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  169. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  170. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  171. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +404 -31
  173. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -149
  175. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  176. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/Registry.sol/Registry.json +802 -46
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  179. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +264 -279
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +126 -95
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  192. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +265 -222
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +432 -0
  200. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +107 -107
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/IComponentService.sol/IComponentService.json} +482 -317
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IService.sol/IService.json +17 -30
  222. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  224. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  226. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  232. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  233. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +12 -70
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  237. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  238. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +18 -106
  240. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  241. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  242. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Service.sol/Service.json +20 -135
  244. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  245. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  246. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  248. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  249. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +684 -575
  250. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  252. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  254. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  255. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  256. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  258. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  260. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  262. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  264. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  266. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  268. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  270. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  271. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  272. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  274. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  276. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  278. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  280. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  282. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  284. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  286. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  288. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  290. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  292. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  294. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  296. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  298. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  300. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  306. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  308. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  310. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  312. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  314. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  316. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  318. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  320. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  321. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  322. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  324. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  326. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  327. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  328. package/contracts/authorization/AccessAdmin.sol +592 -0
  329. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  330. package/contracts/authorization/Authorization.sol +221 -0
  331. package/contracts/authorization/IAccess.sol +48 -0
  332. package/contracts/authorization/IAccessAdmin.sol +135 -0
  333. package/contracts/authorization/IAuthorization.sol +54 -0
  334. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  335. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  336. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  337. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  338. package/contracts/distribution/BasicDistribution.sol +138 -0
  339. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  340. package/contracts/{components → distribution}/Distribution.sol +178 -163
  341. package/contracts/distribution/DistributionService.sol +336 -0
  342. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  343. package/contracts/distribution/IDistributionComponent.sol +52 -0
  344. package/contracts/{instance/service → distribution}/IDistributionService.sol +41 -38
  345. package/contracts/examples/fire/DamageLevel.sol +59 -0
  346. package/contracts/examples/fire/FirePool.sol +75 -0
  347. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  348. package/contracts/examples/fire/FireProduct.sol +410 -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 +50 -0
  352. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  353. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  354. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  355. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  356. package/contracts/instance/IInstance.sol +38 -73
  357. package/contracts/instance/IInstanceService.sol +50 -30
  358. package/contracts/instance/Instance.sol +147 -245
  359. package/contracts/instance/InstanceAdmin.sol +288 -0
  360. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  361. package/contracts/instance/InstanceReader.sol +264 -60
  362. package/contracts/instance/InstanceService.sol +305 -335
  363. package/contracts/instance/InstanceServiceManager.sol +14 -29
  364. package/contracts/instance/InstanceStore.sol +287 -0
  365. package/contracts/instance/base/BalanceStore.sol +123 -0
  366. package/contracts/instance/base/Cloneable.sol +28 -0
  367. package/contracts/instance/base/ObjectCounter.sol +21 -0
  368. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  369. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  370. package/contracts/instance/module/IAccess.sol +5 -13
  371. package/contracts/instance/module/IBundle.sol +6 -9
  372. package/contracts/instance/module/IComponents.sol +23 -16
  373. package/contracts/instance/module/IDistribution.sol +6 -6
  374. package/contracts/instance/module/IPolicy.sol +47 -35
  375. package/contracts/instance/module/IRisk.sol +1 -1
  376. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  377. package/contracts/oracle/BasicOracle.sol +48 -0
  378. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  379. package/contracts/oracle/IOracle.sol +36 -0
  380. package/contracts/oracle/IOracleComponent.sol +33 -0
  381. package/contracts/oracle/IOracleService.sol +65 -0
  382. package/contracts/oracle/Oracle.sol +167 -0
  383. package/contracts/oracle/OracleService.sol +281 -0
  384. package/contracts/oracle/OracleServiceManager.sol +39 -0
  385. package/contracts/pool/BasicPool.sol +166 -0
  386. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  387. package/contracts/pool/BundleService.sol +461 -0
  388. package/contracts/pool/BundleServiceManager.sol +39 -0
  389. package/contracts/pool/IBundleService.sol +143 -0
  390. package/contracts/pool/IPoolComponent.sol +68 -0
  391. package/contracts/pool/IPoolService.sol +171 -0
  392. package/contracts/pool/Pool.sol +353 -0
  393. package/contracts/pool/PoolService.sol +563 -0
  394. package/contracts/pool/PoolServiceManager.sol +39 -0
  395. package/contracts/product/ApplicationService.sol +251 -0
  396. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  397. package/contracts/product/BasicProduct.sol +53 -0
  398. package/contracts/product/BasicProductAuthorization.sol +43 -0
  399. package/contracts/product/ClaimService.sol +581 -0
  400. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  401. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  402. package/contracts/product/IClaimService.sol +123 -0
  403. package/contracts/product/IPolicyService.sol +80 -0
  404. package/contracts/product/IPricingService.sol +39 -0
  405. package/contracts/product/IProductComponent.sol +53 -0
  406. package/contracts/product/IRiskService.sol +33 -0
  407. package/contracts/product/PolicyService.sol +686 -0
  408. package/contracts/product/PolicyServiceManager.sol +39 -0
  409. package/contracts/product/PricingService.sol +300 -0
  410. package/contracts/product/PricingServiceManager.sol +39 -0
  411. package/contracts/product/Product.sol +432 -0
  412. package/contracts/product/RiskService.sol +96 -0
  413. package/contracts/product/RiskServiceManager.sol +39 -0
  414. package/contracts/registry/ChainNft.sol +72 -32
  415. package/contracts/registry/IRegistry.sol +94 -25
  416. package/contracts/registry/IRegistryService.sol +35 -43
  417. package/contracts/registry/Registry.sol +432 -192
  418. package/contracts/registry/RegistryAdmin.sol +464 -0
  419. package/contracts/registry/RegistryService.sol +108 -134
  420. package/contracts/registry/RegistryServiceManager.sol +23 -32
  421. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  422. package/contracts/registry/ReleaseRegistry.sol +491 -0
  423. package/contracts/registry/ServiceAuthorizationV3.sol +198 -0
  424. package/contracts/registry/TokenRegistry.sol +261 -62
  425. package/contracts/shared/Component.sol +268 -0
  426. package/contracts/shared/ComponentService.sol +641 -0
  427. package/contracts/shared/ComponentServiceManager.sol +38 -0
  428. package/contracts/shared/ComponentVerifyingService.sol +116 -0
  429. package/contracts/shared/ContractLib.sol +38 -0
  430. package/contracts/shared/IComponent.sol +70 -0
  431. package/contracts/shared/IComponentService.sol +108 -0
  432. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  433. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  434. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  435. package/contracts/shared/INftOwnable.sol +2 -2
  436. package/contracts/shared/IPolicyHolder.sol +23 -14
  437. package/contracts/shared/IRegistryLinked.sol +0 -1
  438. package/contracts/shared/IService.sol +12 -8
  439. package/contracts/shared/InitializableCustom.sol +177 -0
  440. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  441. package/contracts/shared/InstanceLinkedComponent.sol +171 -0
  442. package/contracts/shared/KeyValueStore.sol +131 -0
  443. package/contracts/shared/Lifecycle.sol +77 -0
  444. package/contracts/shared/NftIdSet.sol +65 -0
  445. package/contracts/shared/NftOwnable.sol +10 -23
  446. package/contracts/shared/PolicyHolder.sol +22 -41
  447. package/contracts/shared/Registerable.sol +17 -16
  448. package/contracts/shared/RegistryLinked.sol +3 -7
  449. package/contracts/shared/Service.sol +53 -29
  450. package/contracts/shared/TokenHandler.sol +115 -9
  451. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  452. package/contracts/staking/IStaking.sol +168 -0
  453. package/contracts/staking/IStakingService.sol +160 -0
  454. package/contracts/staking/StakeManagerLib.sol +224 -0
  455. package/contracts/staking/Staking.sol +498 -0
  456. package/contracts/staking/StakingLifecycle.sol +23 -0
  457. package/contracts/staking/StakingManager.sol +52 -0
  458. package/contracts/staking/StakingReader.sol +183 -0
  459. package/contracts/staking/StakingService.sol +407 -0
  460. package/contracts/staking/StakingServiceManager.sol +44 -0
  461. package/contracts/staking/StakingStore.sol +605 -0
  462. package/contracts/staking/TargetManagerLib.sol +211 -0
  463. package/contracts/{types → type}/AddressSet.sol +1 -1
  464. package/contracts/type/Amount.sol +150 -0
  465. package/contracts/{types → type}/Blocknumber.sol +26 -3
  466. package/contracts/{types → type}/ClaimId.sol +31 -3
  467. package/contracts/{types → type}/Fee.sol +24 -22
  468. package/contracts/{types → type}/NftId.sol +15 -16
  469. package/contracts/{types → type}/NftIdSet.sol +2 -2
  470. package/contracts/type/ObjectType.sol +275 -0
  471. package/contracts/type/PayoutId.sol +82 -0
  472. package/contracts/{types → type}/Referral.sol +2 -1
  473. package/contracts/type/RequestId.sol +75 -0
  474. package/contracts/{types → type}/RiskId.sol +16 -2
  475. package/contracts/type/RoleId.sol +174 -0
  476. package/contracts/type/Seconds.sol +101 -0
  477. package/contracts/type/Selector.sol +102 -0
  478. package/contracts/{types → type}/StateId.sol +34 -4
  479. package/contracts/type/String.sol +53 -0
  480. package/contracts/{types → type}/Timestamp.sol +21 -2
  481. package/contracts/{types → type}/UFixed.sol +38 -9
  482. package/contracts/{types → type}/Version.sol +4 -2
  483. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  484. package/contracts/{shared → upgradeability}/ProxyManager.sol +92 -30
  485. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  486. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  487. package/package.json +8 -5
  488. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  489. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  490. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  494. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  495. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  496. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  497. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  498. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  499. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  500. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  501. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  502. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1311
  503. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  505. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  507. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  508. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  509. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  510. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  511. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  512. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  513. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  515. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1058
  517. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  519. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1258
  521. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  522. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -717
  523. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  524. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -844
  525. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  526. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  527. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  528. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1822
  529. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  530. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  531. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  532. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  533. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  535. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  536. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  539. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1111
  540. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  542. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  543. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1264
  544. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  546. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -867
  548. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  550. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  551. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  552. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  553. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  554. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  555. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  556. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  557. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  558. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  559. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  560. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  561. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  562. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  563. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  564. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  565. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  566. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  567. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  568. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  569. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  570. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -611
  572. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  574. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  576. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  578. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  579. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  580. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  581. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  582. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  584. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  586. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  588. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  590. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  592. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  594. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  595. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  596. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  598. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  599. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  600. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  602. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  603. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  604. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  605. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  606. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  608. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  610. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  612. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  614. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  617. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  619. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  621. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  622. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  623. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  625. package/contracts/components/Component.sol +0 -253
  626. package/contracts/components/IComponent.sol +0 -76
  627. package/contracts/components/IDistributionComponent.sol +0 -71
  628. package/contracts/components/IPoolComponent.sol +0 -113
  629. package/contracts/components/IProductComponent.sol +0 -40
  630. package/contracts/components/Pool.sol +0 -303
  631. package/contracts/components/Product.sol +0 -293
  632. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  633. package/contracts/instance/Cloneable.sol +0 -51
  634. package/contracts/instance/InstanceAccessManager.sol +0 -522
  635. package/contracts/instance/base/ComponentService.sol +0 -136
  636. package/contracts/instance/base/KeyValueStore.sol +0 -180
  637. package/contracts/instance/base/Lifecycle.sol +0 -109
  638. package/contracts/instance/module/ISetup.sol +0 -33
  639. package/contracts/instance/module/ITreasury.sol +0 -23
  640. package/contracts/instance/service/ApplicationService.sol +0 -350
  641. package/contracts/instance/service/BundleService.sol +0 -431
  642. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  643. package/contracts/instance/service/ClaimService.sol +0 -151
  644. package/contracts/instance/service/DistributionService.sol +0 -435
  645. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  646. package/contracts/instance/service/IBundleService.sol +0 -93
  647. package/contracts/instance/service/IClaimService.sol +0 -61
  648. package/contracts/instance/service/IPolicyService.sol +0 -72
  649. package/contracts/instance/service/IPoolService.sol +0 -99
  650. package/contracts/instance/service/IProductService.sol +0 -40
  651. package/contracts/instance/service/PolicyService.sol +0 -360
  652. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  653. package/contracts/instance/service/PoolService.sol +0 -343
  654. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  655. package/contracts/instance/service/ProductService.sol +0 -210
  656. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  657. package/contracts/registry/RegistryAccessManager.sol +0 -216
  658. package/contracts/registry/ReleaseManager.sol +0 -322
  659. package/contracts/shared/ContractDeployerLib.sol +0 -72
  660. package/contracts/test/TestFee.sol +0 -25
  661. package/contracts/test/TestRegisterable.sol +0 -18
  662. package/contracts/test/TestRoleId.sol +0 -14
  663. package/contracts/test/TestService.sol +0 -25
  664. package/contracts/test/TestToken.sol +0 -26
  665. package/contracts/test/TestVersion.sol +0 -44
  666. package/contracts/test/TestVersionable.sol +0 -17
  667. package/contracts/types/Amount.sol +0 -60
  668. package/contracts/types/ChainId.sol +0 -38
  669. package/contracts/types/NumberId.sol +0 -52
  670. package/contracts/types/ObjectType.sol +0 -157
  671. package/contracts/types/PayoutId.sol +0 -54
  672. package/contracts/types/RoleId.sol +0 -97
  673. package/contracts/types/Seconds.sol +0 -54
  674. /package/contracts/{types → type}/DistributorType.sol +0 -0
  675. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,221 @@
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
+ import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
7
+ import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
8
+ import {SelectorLib} from "../type/Selector.sol";
9
+ import {Str, StrLib} from "../type/String.sol";
10
+ import {TimestampLib} from "../type/Timestamp.sol";
11
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
12
+
13
+ contract Authorization
14
+ is IAuthorization
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";
19
+
20
+ string internal _mainTargetName = "Component";
21
+ Str[] internal _targets;
22
+
23
+ mapping(Str target => RoleId roleid) internal _targetRole;
24
+ mapping(Str target => bool exists) internal _targetExists;
25
+
26
+ RoleId[] internal _roles;
27
+ mapping(RoleId role => RoleInfo info) internal _roleInfo;
28
+
29
+ mapping(Str target => RoleId[] authorizedRoles) internal _authorizedRoles;
30
+ mapping(Str target => mapping(RoleId authorizedRole => IAccess.FunctionInfo[] functions)) internal _authorizedFunctions;
31
+
32
+
33
+ constructor(string memory mainTargetName) {
34
+ _mainTargetName = mainTargetName;
35
+
36
+ _setupRoles();
37
+ _setupTargets();
38
+ _setupTargetAuthorizations();
39
+ }
40
+
41
+ function getRelease() public virtual pure returns(VersionPart release) {
42
+ return VersionPartLib.toVersionPart(GIF_VERSION);
43
+ }
44
+
45
+ function getRoles() external view returns(RoleId[] memory roles) {
46
+ return _roles;
47
+ }
48
+
49
+ function getServiceRole(ObjectType serviceDomain) public virtual pure returns (RoleId serviceRoleId) {
50
+ return RoleIdLib.roleForTypeAndVersion(
51
+ serviceDomain, getRelease());
52
+ }
53
+
54
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory info) {
55
+ return _roleInfo[roleId];
56
+ }
57
+
58
+ function roleExists(RoleId roleId) public view returns(bool exists) {
59
+ return _roleInfo[roleId].roleType != RoleType.Undefined;
60
+ }
61
+
62
+ function getTarget() public view returns(Str) {
63
+ if (_targets.length > 0) {
64
+ return _targets[0];
65
+ }
66
+
67
+ return StrLib.toStr("");
68
+ }
69
+
70
+ function getTargets() external view returns(Str[] memory targets) {
71
+ return _targets;
72
+ }
73
+
74
+ function targetExists(Str target) external view returns(bool exists) {
75
+ return _targetExists[target];
76
+ }
77
+
78
+ function getTargetRole(Str target) external view returns(RoleId roleId) {
79
+ return _targetRole[target];
80
+ }
81
+
82
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds) {
83
+ return _authorizedRoles[target];
84
+ }
85
+
86
+ function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions) {
87
+ return _authorizedFunctions[target][roleId];
88
+ }
89
+
90
+ function getTargetName() public virtual view returns (string memory name) {
91
+ return _mainTargetName;
92
+ }
93
+
94
+ /// @dev Overwrite this function for a specific realease.
95
+ /// The first target added represents the components/module main target.
96
+ function _setupTargets() internal virtual { }
97
+
98
+ /// @dev Overwrite this function for a specific realease.
99
+ function _setupRoles() internal virtual {}
100
+
101
+ /// @dev Overwrite this function for a specific realease.
102
+ function _setupTargetAuthorizations() internal virtual {}
103
+
104
+ /// @dev Use this method to to add an authorized role.
105
+ function _addRole(RoleId roleId, RoleInfo memory info) internal {
106
+ _roles.push(roleId);
107
+ _roleInfo[roleId] = info;
108
+ }
109
+
110
+ /// @dev Add a contract role for the provided role id and name.
111
+ function _addContractRole(RoleId roleId, string memory name) internal {
112
+ _addRole(
113
+ roleId,
114
+ _toRoleInfo(
115
+ ADMIN_ROLE(),
116
+ RoleType.Contract,
117
+ 1,
118
+ name));
119
+ }
120
+
121
+ /// @dev Add the versioned service role for the specified service domain
122
+ function _addServiceRole(ObjectType serviceDomain) internal {
123
+ _addContractRole(
124
+ getServiceRole(serviceDomain),
125
+ ObjectTypeLib.toVersionedName(
126
+ ObjectTypeLib.toName(serviceDomain),
127
+ SERVICE_ROLE_NAME_SUFFIX,
128
+ getRelease().toInt()));
129
+ }
130
+
131
+ function _addComponentTargetWithRole(ObjectType componentType) internal {
132
+ _addComponentTargetWithRole(componentType, 0);
133
+ }
134
+
135
+ function _addComponentTargetWithRole(ObjectType componentType, uint64 index) internal {
136
+ _addTargetWithRole(
137
+ getTargetName(),
138
+ RoleIdLib.toComponentRoleId(componentType, index),
139
+ _toTargetRoleName(
140
+ getTargetName()));
141
+ }
142
+
143
+ /// @dev Add a contract role for the provided role id and name.
144
+ function _addCustomRole(RoleId roleId, RoleId adminRoleId, uint32 maxMemberCount, string memory name) internal {
145
+ _addRole(
146
+ roleId,
147
+ _toRoleInfo(
148
+ adminRoleId,
149
+ RoleType.Custom,
150
+ maxMemberCount,
151
+ name));
152
+ }
153
+
154
+ /// @dev Use this method to to add an authorized target together with its target role.
155
+ function _addTargetWithRole(
156
+ string memory targetName,
157
+ RoleId roleId,
158
+ string memory roleName
159
+ )
160
+ internal
161
+ {
162
+ // add target
163
+ Str target = StrLib.toStr(targetName);
164
+ _targets.push(target);
165
+
166
+ _targetExists[target] = true;
167
+
168
+ // link role to target if defined
169
+ if (roleId != RoleIdLib.zero()) {
170
+ // add role if new
171
+ if (!roleExists(roleId)) {
172
+ _addContractRole(roleId, roleName);
173
+ }
174
+
175
+ // link target to role
176
+ _targetRole[target] = roleId;
177
+ }
178
+ }
179
+
180
+ /// @dev Use this method to to add an authorized target.
181
+ function _addTarget(string memory name) internal {
182
+ _addTargetWithRole(name, RoleIdLib.zero(), "");
183
+ }
184
+
185
+ /// @dev Use this method to authorize the specified role to access the target.
186
+ function _authorizeForTarget(string memory target, RoleId authorizedRoleId)
187
+ internal
188
+ returns (IAccess.FunctionInfo[] storage authorizatedFunctions)
189
+ {
190
+ Str targetStr = StrLib.toStr(target);
191
+ _authorizedRoles[targetStr].push(authorizedRoleId);
192
+ return _authorizedFunctions[targetStr][authorizedRoleId];
193
+ }
194
+
195
+ /// @dev Use this method to authorize a specific function authorization
196
+ function _authorize(IAccess.FunctionInfo[] storage functions, bytes4 selector, string memory name) internal {
197
+ functions.push(
198
+ IAccess.FunctionInfo({
199
+ selector: SelectorLib.toSelector(selector),
200
+ name: StrLib.toStr(name),
201
+ createdAt: TimestampLib.blockTimestamp()}));
202
+ }
203
+
204
+ function _toTargetRoleName(string memory targetName) internal view returns (string memory) {
205
+ return string(
206
+ abi.encodePacked(
207
+ targetName,
208
+ ROLE_NAME_SUFFIX));
209
+ }
210
+
211
+ /// @dev creates a role info object from the provided parameters
212
+ function _toRoleInfo(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) internal view returns (RoleInfo memory info) {
213
+ return RoleInfo({
214
+ name: StrLib.toStr(name),
215
+ adminRoleId: adminRoleId,
216
+ roleType: roleType,
217
+ maxMemberCount: maxMemberCount,
218
+ createdAt: TimestampLib.blockTimestamp()});
219
+ }
220
+ }
221
+
@@ -0,0 +1,48 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {RoleId} from "../type/RoleId.sol";
5
+ import {Selector} from "../type/Selector.sol";
6
+ import {Str} from "../type/String.sol";
7
+ import {Timestamp} from "../type/Timestamp.sol";
8
+
9
+ interface IAccess {
10
+
11
+ enum RoleType {
12
+ Undefined, // no role must have this type
13
+ Contract, // roles assigned to contracts, cannot be revoked
14
+ Gif, // framework roles that may be freely assigned and revoked
15
+ Custom // use case specific rules for components
16
+ }
17
+
18
+ struct RoleInfo {
19
+ RoleId adminRoleId;
20
+ RoleType roleType;
21
+ uint32 maxMemberCount;
22
+ Str name;
23
+ Timestamp createdAt;
24
+ }
25
+
26
+ struct TargetInfo {
27
+ Str name;
28
+ bool isCustom;
29
+ Timestamp createdAt;
30
+ }
31
+
32
+ struct FunctionInfo {
33
+ Str name; // function name
34
+ Selector selector; // function selector
35
+ Timestamp createdAt;
36
+ }
37
+
38
+ struct RoleNameInfo {
39
+ RoleId roleId;
40
+ bool exists;
41
+ }
42
+
43
+ struct TargeNameInfo {
44
+ address target;
45
+ bool exists;
46
+ }
47
+
48
+ }
@@ -0,0 +1,135 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {IAccess} from "./IAccess.sol";
7
+ import {RoleId} from "../type/RoleId.sol";
8
+ import {Selector} from "../type/Selector.sol";
9
+ import {Str} from "../type/String.sol";
10
+ import {Timestamp} from "../type/Timestamp.sol";
11
+
12
+ interface IAccessAdmin is
13
+ IAccessManaged,
14
+ IAccess
15
+ {
16
+
17
+ // roles
18
+ event LogRoleCreated(RoleId roleId, RoleType roleType, RoleId roleAdminId, string name);
19
+ event LogTargetCreated(address target, string name);
20
+ event LogFunctionCreated(address target, Selector selector, string name);
21
+
22
+ // only deployer modifier
23
+ error ErrorNotDeployer();
24
+
25
+ // only role admin modifier
26
+ error ErrorNotAdminOfRole(RoleId adminRoleId);
27
+
28
+ // only role owner modifier
29
+ error ErrorNotRoleOwner(RoleId roleId);
30
+
31
+ // initialize authority
32
+ error ErrorAuthorityAlreadySet();
33
+ error ErrorAdminRoleMissing();
34
+
35
+ // create role
36
+ error ErrorRoleAlreadyCreated(RoleId roleId, string name);
37
+ error ErrorRoleAdminNotExisting(RoleId adminRoleId);
38
+ error ErrorRoleNameEmpty(RoleId roleId);
39
+ error ErrorRoleNameAlreadyExists(RoleId roleId, string name, RoleId existingRoleId);
40
+
41
+ // grant/revoke/renounce role
42
+ error ErrorRoleUnknown(RoleId roleId);
43
+ error ErrorRoleIsLocked(RoleId roleId);
44
+ error ErrorRoleIsDisabled(RoleId roleId);
45
+ error ErrorRoleMembersLimitReached(RoleId roleId, uint256 memberCountLimit);
46
+ error ErrorRoleRemovalDisabled(RoleId roleId);
47
+
48
+ // create target
49
+ error ErrorTargetAlreadyCreated(address target, string name);
50
+ error ErrorTargetNameEmpty(address target);
51
+ error ErrorTargetNameAlreadyExists(address target, string name, address existingTarget);
52
+ error ErrorTargetNotAccessManaged(address target);
53
+ error ErrorTargetAuthorityMismatch(address expectedAuthority, address actualAuthority);
54
+
55
+ // lock target
56
+ error ErrorTagetNotLockable();
57
+
58
+ // authorize target functions
59
+ error ErrorAuthorizeForAdminRoleInvalid(address target);
60
+
61
+ // check target
62
+ error ErrorTargetUnknown(address target);
63
+
64
+ /// @dev Set the disabled status of the speicified role.
65
+ /// Role disabling only prevents the role from being granted to new accounts.
66
+ /// Existing role members may still execute functions that are authorized for that role.
67
+ /// Permissioned: the caller must have the manager role (getManagerRole).
68
+ // TODO move to instance admin
69
+ // function setRoleDisabled(RoleId roleId, bool disabled) external;
70
+
71
+ /// @dev Grant the specified account the provided role.
72
+ /// Permissioned: the caller must have the roles admin role.
73
+ // TODO move to instance admin
74
+ // function grantRole(address account, RoleId roleId) external;
75
+
76
+ /// @dev Revoke the provided role from the specified account.
77
+ /// Permissioned: the caller must have the roles admin role.
78
+ // TODO move to instance admin
79
+ // function revokeRole(address account, RoleId roleId) external;
80
+
81
+ /// @dev Removes the provided role from the caller
82
+ // TODO move to instance admin
83
+ // function renounceRole(RoleId roleId) external;
84
+
85
+ /// @dev Set the locked status of the speicified contract.
86
+ /// IMPORTANT: using this function the AccessManager might itself be put into locked state from which it cannot be unlocked again.
87
+ /// Overwrite this function if a different use case specific behaviour is required.
88
+ /// Alternatively, add specific function to just unlock this contract without a restricted() modifier.
89
+ /// Permissioned: the caller must have the manager role (getManagerRole).
90
+ // TODO move to instance admin
91
+ // function setTargetLocked(address target, bool locked) external;
92
+
93
+ /// @dev Specifies which functions of the target can be accessed by the provided role.
94
+ /// Previously existing authorizations will be overwritten.
95
+ /// Authorizing the admin role is not allowed, use function unauthorizedFunctions for this.
96
+ /// Permissioned: the caller must have the manager role (getManagerRole).
97
+ // TODO move to instance admin
98
+ // function authorizeFunctions(address target, RoleId roleId, FunctionInfo[] memory functions) external;
99
+
100
+ /// @dev Specifies for which functionss to remove any previous authorization
101
+ /// Permissioned: the caller must have the manager role (getManagerRole).
102
+ // TODO move to instance admin
103
+ // function unauthorizeFunctions(address target, FunctionInfo[] memory functions) external;
104
+
105
+ //--- view functions ----------------------------------------------------//
106
+
107
+ function roles() external view returns (uint256 numberOfRoles);
108
+ function getRoleId(uint256 idx) external view returns (RoleId roleId);
109
+ function getAdminRole() external view returns (RoleId roleId);
110
+ function getPublicRole() external view returns (RoleId roleId);
111
+
112
+ function roleExists(RoleId roleId) external view returns (bool exists);
113
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
114
+ function getRoleForName(Str name) external view returns (RoleNameInfo memory);
115
+
116
+ function hasRole(address account, RoleId roleId) external view returns (bool);
117
+ function hasAdminRole(address account, RoleId roleId) external view returns (bool);
118
+ function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers);
119
+ function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account);
120
+
121
+ function targetExists(address target) external view returns (bool exists);
122
+ function isTargetLocked(address target) external view returns (bool locked);
123
+ function targets() external view returns (uint256 numberOfTargets);
124
+ function getTargetAddress(uint256 idx) external view returns (address target);
125
+ function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo);
126
+ function getTargetForName(Str name) external view returns (address target);
127
+
128
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions);
129
+ function getAuthorizedFunction(address target, uint256 idx) external view returns (FunctionInfo memory func, RoleId roleId);
130
+ function canCall(address caller, address target, Selector selector) external view returns (bool can);
131
+
132
+ function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) external view returns (RoleInfo memory);
133
+ function toFunction(bytes4 selector, string memory name) external view returns (FunctionInfo memory);
134
+ function deployer() external view returns (address);
135
+ }
@@ -0,0 +1,54 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {ObjectType} from "../type/ObjectType.sol";
6
+ import {RoleId} from "../type/RoleId.sol";
7
+ import {Str} from "../type/String.sol";
8
+ import {VersionPart} from "../type/Version.sol";
9
+
10
+ interface IAuthorization is
11
+ IAccess
12
+ {
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);
20
+
21
+ /// @dev Returns the service role for the specified service domain.
22
+ function getServiceRole(ObjectType serviceDomain) external pure returns (RoleId serviceRoleId);
23
+
24
+ /// @dev Returns the name for the provided role id.
25
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
26
+
27
+ /// @dev Returns true iff the specified role id exists.
28
+ function roleExists(RoleId roleId) external view returns(bool exists);
29
+
30
+ /// @dev Returns the main target id name as string.
31
+ /// This name is used to derive the target id and a corresponding target role name
32
+ /// Overwrite this function to change the basic pool target name.
33
+ function getTargetName() external view returns (string memory name);
34
+
35
+ /// @dev Returns the main target.
36
+ function getTarget() external view returns(Str target);
37
+
38
+ /// @dev Returns the complete list of targets.
39
+ function getTargets() external view returns(Str[] memory targets);
40
+
41
+ /// @dev Returns true iff the specified target exists.
42
+ function targetExists(Str target) external view returns(bool exists);
43
+
44
+ /// @dev Returns the role id associated with the target.
45
+ /// If no role is associated with the target the zero role id is returned.
46
+ function getTargetRole(Str target) external view returns(RoleId roleId);
47
+
48
+ /// @dev For the given target the list of authorized role ids is returned
49
+ function getAuthorizedRoles(Str target) external view returns(RoleId[] memory roleIds);
50
+
51
+ /// @dev For the given target and role id the list of authorized functions is returned
52
+ function getAuthorizedFunctions(Str target, RoleId roleId) external view returns(FunctionInfo[] memory authorizatedFunctions);
53
+ }
54
+
@@ -0,0 +1,21 @@
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
+ import {ObjectType} from "../type/ObjectType.sol";
7
+ import {RoleId} from "../type/RoleId.sol";
8
+ import {Str} from "../type/String.sol";
9
+
10
+ interface IModuleAuthorization is
11
+ IAccess,
12
+ IAuthorization
13
+ {
14
+
15
+ /// @dev Returns the list of service targets.
16
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
17
+
18
+ /// @dev Returns the service target for the specified domain.
19
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget);
20
+ }
21
+
@@ -0,0 +1,38 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {ObjectType} from "../type/ObjectType.sol";
6
+ import {VersionPart} from "../type/Version.sol";
7
+
8
+ interface IServiceAuthorization {
9
+
10
+ /// @dev Returns the commit hash representing the deployed release
11
+ function getCommitHash()
12
+ external
13
+ view
14
+ returns(string memory commitHash);
15
+
16
+ /// @dev Returns the release (VersionPart) for which the service authorizations are defined by this contract.
17
+ function getRelease()
18
+ external
19
+ view
20
+ returns(VersionPart release);
21
+
22
+ /// @dev Returns the service domain for the provided index.
23
+ function getServiceDomain(uint idx) external view returns(ObjectType serviceDomain);
24
+
25
+ /// @dev Returns the full list of service domains for this release.
26
+ /// Services need to be registered for the release in revers order of this list.
27
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
28
+
29
+ /// @dev Returns the expected service address for the provided domain.
30
+ function getServiceAddress(ObjectType serviceDomain) external view returns(address service);
31
+
32
+ /// @dev Given the service domain this function returns the list of other service domains that are authorized to access this service.
33
+ function getAuthorizedDomains(ObjectType serviceDomain) external view returns(ObjectType[] memory authorizatedDomains);
34
+
35
+ /// @dev For the given service domain and authorized domain the function returns the list of authorized functions
36
+ function getAuthorizedFunctions(ObjectType serviceDomain, ObjectType authorizedDomain) external view returns(IAccess.FunctionInfo[] memory authorizatedFunctions);
37
+ }
38
+
@@ -0,0 +1,78 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Authorization} from "./Authorization.sol";
5
+ import {IAccess} from "./IAccess.sol";
6
+ import {IModuleAuthorization} from "./IModuleAuthorization.sol";
7
+ import {ObjectType, ObjectTypeLib} from "../type/ObjectType.sol";
8
+ import {RoleId, RoleIdLib, ADMIN_ROLE} from "../type/RoleId.sol";
9
+ import {SelectorLib} from "../type/Selector.sol";
10
+ import {Str, StrLib} from "../type/String.sol";
11
+ import {TimestampLib} from "../type/Timestamp.sol";
12
+ import {VersionPart} from "../type/Version.sol";
13
+
14
+ contract ModuleAuthorization is
15
+ Authorization,
16
+ IModuleAuthorization
17
+ {
18
+
19
+ ObjectType[] internal _serviceDomains;
20
+ mapping(ObjectType domain => Str target) internal _serviceTarget;
21
+
22
+ constructor(string memory moduleName)
23
+ Authorization(moduleName)
24
+ { }
25
+
26
+ function getServiceDomains() external view returns(ObjectType[] memory serviceDomains) {
27
+ return _serviceDomains;
28
+ }
29
+
30
+ function getServiceTarget(ObjectType serviceDomain) external view returns(Str serviceTarget) {
31
+ return _serviceTarget[serviceDomain];
32
+ }
33
+
34
+ /// @dev Add a GIF role for the provided role id and name.
35
+ function _addGifRole(RoleId roleId, string memory name) internal returns (RoleInfo memory info) {
36
+ _addRole(
37
+ roleId,
38
+ _toRoleInfo(
39
+ ADMIN_ROLE(),
40
+ RoleType.Gif,
41
+ type(uint32).max,
42
+ name));
43
+ }
44
+
45
+ /// @dev Add the service target role for the specified service domain
46
+ function _addServiceTargetWithRole(ObjectType serviceDomain) internal {
47
+ // add service domain
48
+ _serviceDomains.push(serviceDomain);
49
+
50
+ // get versioned target name
51
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
52
+ ObjectTypeLib.toName(serviceDomain),
53
+ "Service",
54
+ getRelease().toInt());
55
+
56
+ _serviceTarget[serviceDomain] = StrLib.toStr(serviceTargetName);
57
+
58
+ RoleId serviceRoleId = getServiceRole(serviceDomain);
59
+ string memory serviceRoleName = ObjectTypeLib.toVersionedName(
60
+ ObjectTypeLib.toName(serviceDomain),
61
+ "ServiceRole",
62
+ getRelease().toInt());
63
+
64
+ _addTargetWithRole(
65
+ serviceTargetName,
66
+ serviceRoleId,
67
+ serviceRoleName);
68
+ }
69
+
70
+ /// @dev role id for targets registry, staking and instance
71
+ function _getTargetRoleId(ObjectType targetDomain)
72
+ internal
73
+ returns (RoleId targetRoleId)
74
+ {
75
+ return RoleIdLib.roleForType(targetDomain);
76
+ }
77
+ }
78
+