@etherisc/gif-next 0.0.2-83e248c-054 → 0.0.2-8469187-381

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 (736) hide show
  1. package/README.md +136 -318
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +817 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +299 -329
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +288 -280
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +534 -340
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +465 -1901
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +540 -71
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +551 -2480
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1816 -693
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +553 -345
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +217 -166
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  107. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  108. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  109. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  111. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  112. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  122. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +313 -237
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  124. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +269 -248
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  130. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +334 -478
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  144. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +379 -428
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  156. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +475 -493
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +334 -374
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +346 -247
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +202 -177
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  174. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → product/IRiskService.sol/IRiskService.json} +261 -203
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  185. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  186. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +499 -34
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -109
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  201. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  202. package/artifacts/contracts/registry/Registry.sol/Registry.json +987 -131
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +390 -250
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +233 -110
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
  221. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  222. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  236. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +153 -138
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  238. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +573 -743
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  241. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  243. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  247. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  249. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  251. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  252. package/artifacts/contracts/shared/IService.sol/IService.json +98 -5
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  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 +47 -70
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +145 -100
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  269. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  270. package/artifacts/contracts/shared/Service.sol/Service.json +95 -109
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  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 +4 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  281. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  282. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  285. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  297. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  298. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  307. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  346. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +40 -8
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  354. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  360. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  361. package/contracts/accounting/AccountingService.sol +274 -0
  362. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  363. package/contracts/accounting/IAccountingService.sol +47 -0
  364. package/contracts/authorization/AccessAdmin.sol +679 -0
  365. package/contracts/authorization/AccessAdminLib.sol +678 -0
  366. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  367. package/contracts/authorization/Authorization.sol +190 -0
  368. package/contracts/authorization/IAccess.sol +66 -0
  369. package/contracts/authorization/IAccessAdmin.sol +142 -0
  370. package/contracts/authorization/IAuthorization.sol +26 -0
  371. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  372. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  373. package/contracts/distribution/BasicDistribution.sol +140 -0
  374. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  375. package/contracts/distribution/Distribution.sol +245 -0
  376. package/contracts/distribution/DistributionService.sol +448 -0
  377. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  378. package/contracts/distribution/IDistributionComponent.sol +45 -0
  379. package/contracts/distribution/IDistributionService.sol +115 -0
  380. package/contracts/examples/fire/DamageLevel.sol +59 -0
  381. package/contracts/examples/fire/FirePool.sol +86 -0
  382. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  383. package/contracts/examples/fire/FireProduct.sol +433 -0
  384. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  385. package/contracts/examples/fire/FireUSD.sol +26 -0
  386. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  387. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  388. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  389. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  390. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  391. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  392. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  393. package/contracts/instance/BaseStore.sol +93 -0
  394. package/contracts/instance/BundleSet.sol +130 -0
  395. package/contracts/instance/IBaseStore.sol +37 -0
  396. package/contracts/instance/IInstance.sol +128 -74
  397. package/contracts/instance/IInstanceService.sol +86 -35
  398. package/contracts/instance/Instance.sol +246 -205
  399. package/contracts/instance/InstanceAdmin.sol +307 -0
  400. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  401. package/contracts/instance/InstanceReader.sol +496 -207
  402. package/contracts/instance/InstanceService.sol +412 -376
  403. package/contracts/instance/InstanceServiceManager.sol +14 -29
  404. package/contracts/instance/InstanceStore.sol +323 -0
  405. package/contracts/instance/ProductStore.sol +290 -0
  406. package/contracts/instance/RiskSet.sol +126 -0
  407. package/contracts/instance/TargetNames.sol +10 -0
  408. package/contracts/instance/base/BalanceStore.sol +121 -0
  409. package/contracts/instance/base/Cloneable.sol +28 -0
  410. package/contracts/instance/base/ObjectCounter.sol +20 -0
  411. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  412. package/contracts/instance/base/ObjectSet.sol +77 -0
  413. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  414. package/contracts/instance/module/IBundle.sol +9 -11
  415. package/contracts/instance/module/IComponents.sol +43 -24
  416. package/contracts/instance/module/IDistribution.sol +25 -12
  417. package/contracts/instance/module/IPolicy.sol +67 -39
  418. package/contracts/instance/module/IRisk.sol +6 -1
  419. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  420. package/contracts/oracle/BasicOracle.sol +44 -0
  421. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  422. package/contracts/oracle/IOracle.sol +41 -0
  423. package/contracts/oracle/IOracleComponent.sol +33 -0
  424. package/contracts/oracle/IOracleService.sol +66 -0
  425. package/contracts/oracle/Oracle.sol +152 -0
  426. package/contracts/oracle/OracleService.sol +310 -0
  427. package/contracts/oracle/OracleServiceManager.sol +39 -0
  428. package/contracts/pool/BasicPool.sol +161 -0
  429. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  430. package/contracts/pool/BundleService.sol +386 -0
  431. package/contracts/pool/BundleServiceManager.sol +39 -0
  432. package/contracts/pool/IBundleService.sol +116 -0
  433. package/contracts/pool/IPoolComponent.sol +62 -0
  434. package/contracts/pool/IPoolService.sol +170 -0
  435. package/contracts/pool/Pool.sol +331 -0
  436. package/contracts/pool/PoolLib.sol +341 -0
  437. package/contracts/pool/PoolService.sol +614 -0
  438. package/contracts/pool/PoolServiceManager.sol +39 -0
  439. package/contracts/product/ApplicationService.sol +327 -0
  440. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  441. package/contracts/product/BasicProduct.sol +48 -0
  442. package/contracts/product/BasicProductAuthorization.sol +63 -0
  443. package/contracts/product/ClaimService.sol +626 -0
  444. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  445. package/contracts/{instance/service → product}/IApplicationService.sol +41 -31
  446. package/contracts/product/IClaimService.sol +136 -0
  447. package/contracts/product/IPolicyService.sol +102 -0
  448. package/contracts/product/IPricingService.sol +40 -0
  449. package/contracts/product/IProductComponent.sol +62 -0
  450. package/contracts/product/IRiskService.sol +48 -0
  451. package/contracts/product/PolicyService.sol +645 -0
  452. package/contracts/product/PolicyServiceLib.sol +139 -0
  453. package/contracts/product/PolicyServiceManager.sol +39 -0
  454. package/contracts/product/PricingService.sol +306 -0
  455. package/contracts/product/PricingServiceManager.sol +39 -0
  456. package/contracts/product/Product.sol +491 -0
  457. package/contracts/product/RiskService.sol +189 -0
  458. package/contracts/product/RiskServiceManager.sol +39 -0
  459. package/contracts/registry/ChainNft.sol +79 -40
  460. package/contracts/registry/IRegistry.sol +104 -33
  461. package/contracts/registry/IRegistryService.sol +34 -40
  462. package/contracts/registry/IRelease.sol +29 -0
  463. package/contracts/registry/ITransferInterceptor.sol +1 -2
  464. package/contracts/registry/Registry.sol +469 -200
  465. package/contracts/registry/RegistryAdmin.sol +173 -0
  466. package/contracts/registry/RegistryAuthorization.sol +337 -0
  467. package/contracts/registry/RegistryService.sol +90 -131
  468. package/contracts/registry/RegistryServiceManager.sol +23 -32
  469. package/contracts/registry/ReleaseAdmin.sol +199 -0
  470. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  471. package/contracts/registry/ReleaseRegistry.sol +525 -0
  472. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  473. package/contracts/registry/TokenRegistry.sol +265 -64
  474. package/contracts/shared/Component.sol +210 -0
  475. package/contracts/shared/ComponentService.sol +691 -0
  476. package/contracts/shared/ComponentServiceManager.sol +38 -0
  477. package/contracts/shared/ContractLib.sol +312 -0
  478. package/contracts/shared/IComponent.sol +58 -0
  479. package/contracts/shared/IComponentService.sol +111 -0
  480. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  481. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  482. package/contracts/shared/INftOwnable.sol +6 -2
  483. package/contracts/shared/IPolicyHolder.sol +23 -14
  484. package/contracts/shared/IRegisterable.sol +22 -1
  485. package/contracts/shared/IRegistryLinked.sol +0 -1
  486. package/contracts/shared/IService.sol +12 -5
  487. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  488. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  489. package/contracts/shared/Lifecycle.sol +88 -0
  490. package/contracts/shared/NftIdSet.sol +65 -0
  491. package/contracts/shared/NftOwnable.sol +36 -27
  492. package/contracts/shared/PolicyHolder.sol +23 -41
  493. package/contracts/shared/Registerable.sol +52 -20
  494. package/contracts/shared/RegistryLinked.sol +9 -19
  495. package/contracts/shared/Service.sol +36 -41
  496. package/contracts/shared/TokenHandler.sol +322 -13
  497. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  498. package/contracts/staking/IStaking.sol +366 -0
  499. package/contracts/staking/IStakingService.sol +127 -0
  500. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  501. package/contracts/staking/Staking.sol +797 -0
  502. package/contracts/staking/StakingLib.sol +195 -0
  503. package/contracts/staking/StakingManager.sol +53 -0
  504. package/contracts/staking/StakingReader.sol +171 -0
  505. package/contracts/staking/StakingService.sol +321 -0
  506. package/contracts/staking/StakingServiceManager.sol +46 -0
  507. package/contracts/staking/StakingStore.sol +1368 -0
  508. package/contracts/staking/TargetHandler.sol +132 -0
  509. package/contracts/staking/TargetManagerLib.sol +234 -0
  510. package/contracts/{types → type}/AddressSet.sol +1 -1
  511. package/contracts/type/Amount.sol +154 -0
  512. package/contracts/{types → type}/Blocknumber.sol +38 -20
  513. package/contracts/type/ChainId.sol +101 -0
  514. package/contracts/{types → type}/ClaimId.sol +6 -1
  515. package/contracts/{types → type}/Fee.sol +28 -26
  516. package/contracts/{types → type}/Key32.sol +2 -2
  517. package/contracts/type/Key32Set.sol +62 -0
  518. package/contracts/{types → type}/NftId.sol +21 -16
  519. package/contracts/{types → type}/NftIdSet.sol +2 -2
  520. package/contracts/type/ObjectType.sol +307 -0
  521. package/contracts/{types → type}/PayoutId.sol +10 -10
  522. package/contracts/{types → type}/Referral.sol +2 -1
  523. package/contracts/type/RequestId.sol +75 -0
  524. package/contracts/type/RiskId.sol +75 -0
  525. package/contracts/type/RoleId.sol +180 -0
  526. package/contracts/type/Seconds.sol +120 -0
  527. package/contracts/type/Selector.sol +107 -0
  528. package/contracts/{types → type}/StateId.sol +41 -2
  529. package/contracts/type/String.sol +65 -0
  530. package/contracts/{types → type}/Timestamp.sol +20 -9
  531. package/contracts/type/UFixed.sol +263 -0
  532. package/contracts/{types → type}/Version.sol +58 -7
  533. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  534. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  535. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  536. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  537. package/package.json +12 -8
  538. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  539. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  540. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  541. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  543. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  545. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  546. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  547. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  548. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  549. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  550. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  551. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  553. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  555. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  557. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  559. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  560. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  561. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  562. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  564. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  565. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  567. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  569. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  571. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
  573. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  575. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  577. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  579. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  580. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  581. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  583. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -602
  587. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  589. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  591. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -450
  592. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1511
  594. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  596. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  597. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  598. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  599. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  600. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  601. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  602. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  603. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  604. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  605. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  606. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  607. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  608. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  609. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  610. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  611. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  612. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  613. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  614. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  615. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  616. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  617. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  620. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  622. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  623. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  624. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  625. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  626. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  628. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  629. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  630. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  631. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  632. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  633. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  634. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  636. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -185
  638. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  640. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  642. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
  644. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  646. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  648. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  649. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  650. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  652. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  653. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  654. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  656. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  658. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
  660. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  662. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  664. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  666. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  668. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  670. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  673. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  675. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  677. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  678. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  679. package/contracts/components/Component.sol +0 -253
  680. package/contracts/components/Distribution.sol +0 -284
  681. package/contracts/components/IComponent.sol +0 -76
  682. package/contracts/components/IDistributionComponent.sol +0 -71
  683. package/contracts/components/IPoolComponent.sol +0 -113
  684. package/contracts/components/IProductComponent.sol +0 -40
  685. package/contracts/components/Pool.sol +0 -302
  686. package/contracts/components/Product.sol +0 -371
  687. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  688. package/contracts/instance/BundleManager.sol +0 -126
  689. package/contracts/instance/Cloneable.sol +0 -51
  690. package/contracts/instance/InstanceAccessManager.sol +0 -527
  691. package/contracts/instance/ObjectManager.sol +0 -82
  692. package/contracts/instance/base/ComponentService.sol +0 -121
  693. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  694. package/contracts/instance/base/KeyValueStore.sol +0 -180
  695. package/contracts/instance/base/Lifecycle.sol +0 -117
  696. package/contracts/instance/module/IAccess.sol +0 -54
  697. package/contracts/instance/module/ISetup.sol +0 -33
  698. package/contracts/instance/module/ITreasury.sol +0 -23
  699. package/contracts/instance/service/ApplicationService.sol +0 -355
  700. package/contracts/instance/service/BundleService.sol +0 -436
  701. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  702. package/contracts/instance/service/ClaimService.sol +0 -239
  703. package/contracts/instance/service/DistributionService.sol +0 -431
  704. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  705. package/contracts/instance/service/IBundleService.sol +0 -96
  706. package/contracts/instance/service/IClaimService.sol +0 -92
  707. package/contracts/instance/service/IDistributionService.sol +0 -99
  708. package/contracts/instance/service/IPolicyService.sol +0 -137
  709. package/contracts/instance/service/IPoolService.sol +0 -99
  710. package/contracts/instance/service/IProductService.sol +0 -40
  711. package/contracts/instance/service/PolicyService.sol +0 -541
  712. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  713. package/contracts/instance/service/PoolService.sol +0 -303
  714. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  715. package/contracts/instance/service/ProductService.sol +0 -210
  716. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  717. package/contracts/registry/RegistryAccessManager.sol +0 -216
  718. package/contracts/registry/ReleaseManager.sol +0 -324
  719. package/contracts/shared/ContractDeployerLib.sol +0 -72
  720. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  721. package/contracts/test/TestFee.sol +0 -25
  722. package/contracts/test/TestRegisterable.sol +0 -18
  723. package/contracts/test/TestRoleId.sol +0 -14
  724. package/contracts/test/TestService.sol +0 -25
  725. package/contracts/test/TestToken.sol +0 -26
  726. package/contracts/test/TestVersion.sol +0 -44
  727. package/contracts/test/TestVersionable.sol +0 -17
  728. package/contracts/types/Amount.sol +0 -65
  729. package/contracts/types/ChainId.sol +0 -38
  730. package/contracts/types/NumberId.sol +0 -52
  731. package/contracts/types/ObjectType.sol +0 -157
  732. package/contracts/types/RiskId.sol +0 -43
  733. package/contracts/types/RoleId.sol +0 -97
  734. package/contracts/types/Seconds.sol +0 -54
  735. package/contracts/types/UFixed.sol +0 -326
  736. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,679 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
6
+
7
+ import {IAccess} from "./IAccess.sol";
8
+ import {IAccessAdmin} from "./IAccessAdmin.sol";
9
+ import {IAuthorization} from "./IAuthorization.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {IServiceAuthorization} from "./IServiceAuthorization.sol";
12
+
13
+ import {AccessAdminLib} from "./AccessAdminLib.sol";
14
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
15
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
16
+ import {ContractLib} from "../shared/ContractLib.sol";
17
+ import {NftId, NftIdLib} from "../type/NftId.sol";
18
+ import {ObjectType} from "../type/ObjectType.sol";
19
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
20
+ import {Selector, SelectorSetLib} from "../type/Selector.sol";
21
+ import {Str, StrLib} from "../type/String.sol";
22
+ import {TimestampLib} from "../type/Timestamp.sol";
23
+ import {VersionPart} from "../type/Version.sol";
24
+
25
+
26
+ /**
27
+ * @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
28
+ * The contract provides read functions to query all available roles, targets and access rights.
29
+ * This contract works for both a constructor based deployment or a deployment based on cloning and initialization.
30
+ */
31
+ contract AccessAdmin is
32
+ AccessManagedUpgradeable,
33
+ IAccessAdmin
34
+ {
35
+ using EnumerableSet for EnumerableSet.AddressSet;
36
+
37
+ /// @dev admin name used for logging only
38
+ string internal _adminName;
39
+
40
+ /// @dev the access manager driving the access admin contract
41
+ /// hold link to registry and release version
42
+ AccessManagerCloneable internal _authority;
43
+
44
+ /// @dev the authorization contract used for initial access control
45
+ IAuthorization internal _authorization;
46
+
47
+ // /// @dev stores the deployer address and allows to create initializers
48
+ // /// that are restricted to the deployer address.
49
+ // address internal _deployer;
50
+
51
+ /// @dev the linked NFT ID
52
+ NftId internal _linkedNftId;
53
+
54
+ /// @dev store role info per role id
55
+ mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
56
+
57
+ /// @dev store role name info per role name
58
+ mapping(Str roleName => RoleNameInfo nameInfo) internal _roleForName;
59
+
60
+ /// @dev store array with all created roles
61
+ RoleId [] internal _roleIds;
62
+
63
+ // @dev target type specific role id counters
64
+ mapping(TargetType => uint64) internal _nextRoleId;
65
+
66
+ /// @dev store set of current role members for given role
67
+ mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
68
+
69
+ /// @dev store target info per target address
70
+ mapping(address target => TargetInfo info) internal _targetInfo;
71
+
72
+ /// @dev store role name info per role name
73
+ mapping(Str targetName => address target) internal _targetForName;
74
+
75
+ /// @dev store array with all created targets
76
+ address [] internal _targets;
77
+
78
+ /// @dev store all managed functions per target
79
+ mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
80
+
81
+ /// @dev function infos array
82
+ mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
83
+
84
+ /// @dev temporary dynamic functions array
85
+ bytes4[] private _functions;
86
+
87
+
88
+ //-------------- initialization functions ------------------------------//
89
+
90
+ /// @dev Initializes this admin with the provided accessManager (and authorization specification).
91
+ /// Internally initializes access manager with this admin and creates basic role setup.
92
+ function initialize(
93
+ address authority,
94
+ string memory adminName
95
+ )
96
+ public
97
+ initializer()
98
+ {
99
+ __AccessAdmin_init(authority, adminName);
100
+ }
101
+
102
+
103
+ /// @dev Initializes this admin with the provided accessManager and name.
104
+ /// IMPORTANT
105
+ /// - cloning of an access admin and initialization MUST be done in the same tx.
106
+ /// - this function as well as any completeSetup functions MUST be called in the same tx.
107
+ function __AccessAdmin_init(
108
+ address authority,
109
+ string memory adminName
110
+ )
111
+ internal
112
+ onlyInitializing()
113
+ {
114
+ AccessAdminLib.checkInitParameters(authority, adminName);
115
+ _authority = AccessManagerCloneable(authority);
116
+ _authority.initialize(address(this));
117
+
118
+ // delayed additional check for authority after its initialization
119
+ if (!ContractLib.isAuthority(authority)) {
120
+ revert ErrorAccessAdminAccessManagerNotAccessManager(authority);
121
+ }
122
+
123
+ // effects
124
+ // set and initialize this access manager contract as
125
+ // the admin (ADMIN_ROLE) of the provided authority
126
+ __AccessManaged_init(authority);
127
+
128
+ // set name for logging
129
+ _adminName = adminName;
130
+
131
+ // set initial linked NFT ID to zero
132
+ _linkedNftId = NftIdLib.zero();
133
+
134
+ // setup admin role
135
+ _createRoleUnchecked(
136
+ ADMIN_ROLE(), AccessAdminLib.adminRoleInfo());
137
+
138
+ // add this contract as admin role member, as contract roles cannot be revoked
139
+ // and max member count is 1 for admin role this access admin contract will
140
+ // always be the only admin of the access manager.
141
+ _roleMembers[
142
+ RoleIdLib.toRoleId(_authority.ADMIN_ROLE())].add(address(this));
143
+
144
+ // setup public role
145
+ _createRoleUnchecked(
146
+ PUBLIC_ROLE(), AccessAdminLib.publicRoleInfo());
147
+ }
148
+
149
+ //--- view functions for access admin ---------------------------------------//
150
+
151
+ function getRelease() public view virtual returns (VersionPart release) {
152
+ return _authority.getRelease();
153
+ }
154
+
155
+
156
+ function getRegistry() public view returns (IRegistry registry) {
157
+ return _authority.getRegistry();
158
+ }
159
+
160
+
161
+ function getLinkedNftId() external view returns (NftId linkedNftId) {
162
+ return _linkedNftId;
163
+ }
164
+
165
+
166
+ function getAuthorization() public view returns (IAuthorization authorization) {
167
+ return _authorization;
168
+ }
169
+
170
+
171
+ function isLocked() public view returns (bool locked) {
172
+ return _authority.isLocked();
173
+ }
174
+
175
+ //--- view functions for roles ------------------------------------------//
176
+
177
+ function roles() external view returns (uint256 numberOfRoles) {
178
+ return _roleIds.length;
179
+ }
180
+
181
+ function getRoleId(uint256 idx) external view returns (RoleId roleId) {
182
+ return _roleIds[idx];
183
+ }
184
+
185
+ function getAdminRole() public view returns (RoleId roleId) {
186
+ return RoleId.wrap(_authority.ADMIN_ROLE());
187
+ }
188
+
189
+ function getPublicRole() public view returns (RoleId roleId) {
190
+ return RoleId.wrap(_authority.PUBLIC_ROLE());
191
+ }
192
+
193
+ function roleExists(RoleId roleId) public view returns (bool exists) {
194
+ return _roleInfo[roleId].targetType != TargetType.Undefined;
195
+ }
196
+
197
+ function getRoleForName(string memory name) public view returns (RoleId roleId, bool exists) {
198
+ roleId = _roleForName[StrLib.toStr(name)].roleId;
199
+ exists = false;
200
+
201
+ if (roleId.gtz() || AccessAdminLib.isAdminRoleName(name)) {
202
+ exists = true;
203
+ }
204
+ }
205
+
206
+ function getRoleInfo(RoleId roleId) public view returns (RoleInfo memory) {
207
+ return _roleInfo[roleId];
208
+ }
209
+
210
+ function isRoleActive(RoleId roleId) external view returns (bool isActive) {
211
+ return _roleInfo[roleId].pausedAt > TimestampLib.current();
212
+ }
213
+
214
+ function isRoleCustom(RoleId roleId) external view returns (bool isActive) {
215
+ return _roleInfo[roleId].targetType == TargetType.Custom;
216
+ }
217
+
218
+ function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
219
+ return _roleMembers[roleId].length();
220
+ }
221
+
222
+ function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
223
+ return _roleMembers[roleId].at(idx);
224
+ }
225
+
226
+ function isRoleMember(RoleId roleId, address account) public view returns (bool) {
227
+ (bool isMember, ) = _authority.hasRole(
228
+ RoleId.unwrap(roleId),
229
+ account);
230
+ return isMember;
231
+ }
232
+
233
+ function isRoleAdmin(RoleId roleId, address account) public virtual view returns (bool) {
234
+ return isRoleMember(_roleInfo[roleId].adminRoleId, account);
235
+ }
236
+
237
+ //--- view functions for targets ----------------------------------------//
238
+
239
+ function targetExists(address target) public view returns (bool exists) {
240
+ return _targetInfo[target].createdAt.gtz();
241
+ }
242
+
243
+ function targets() external view returns (uint256 numberOfTargets) {
244
+ return _targets.length;
245
+ }
246
+
247
+ function getTargetAddress(uint256 idx) external view returns (address target) {
248
+ return _targets[idx];
249
+ }
250
+
251
+ function getTargetInfo(address target) public view returns (TargetInfo memory targetInfo) {
252
+ return _targetInfo[target];
253
+ }
254
+
255
+ function getTargetForName(Str name) public view returns (address target) {
256
+ return _targetForName[name];
257
+ }
258
+
259
+ function isTargetLocked(address target) public view returns (bool locked) {
260
+ return _authority.isLocked() || _authority.isTargetClosed(target);
261
+ }
262
+
263
+ //--- view functions for target functions -------------------------------//
264
+
265
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
266
+ return SelectorSetLib.size(_targetFunctions[target]);
267
+ }
268
+
269
+ function getAuthorizedFunction(
270
+ address target,
271
+ uint256 idx
272
+ )
273
+ external
274
+ view
275
+ returns (
276
+ FunctionInfo memory func,
277
+ RoleId roleId
278
+ )
279
+ {
280
+ Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
281
+ func = _functionInfo[target][selector];
282
+ roleId = RoleIdLib.toRoleId(
283
+ _authority.getTargetFunctionRole(
284
+ target,
285
+ selector.toBytes4()));
286
+ }
287
+
288
+
289
+ function getFunctionInfo(address target, Selector selector)
290
+ external
291
+ view
292
+ returns (FunctionInfo memory functionInfo)
293
+ {
294
+ return _functionInfo[target][selector];
295
+ }
296
+
297
+ //--- internal/private functions -------------------------------------------------//
298
+
299
+ function _linkToNftOwnable(address registerable) internal {
300
+ if (!getRegistry().isRegistered(registerable)) {
301
+ revert ErrorAccessAdminNotRegistered(registerable);
302
+ }
303
+
304
+ _linkedNftId = getRegistry().getNftIdForAddress(registerable);
305
+ }
306
+
307
+
308
+ function _createRoles(
309
+ IServiceAuthorization authorization
310
+ )
311
+ internal
312
+ {
313
+ RoleId[] memory roles = authorization.getRoles();
314
+
315
+ for(uint256 i = 0; i < roles.length; i++) {
316
+ RoleId authzRoleId = roles[i];
317
+ IAccess.RoleInfo memory roleInfo = authorization.getRoleInfo(authzRoleId);
318
+ (RoleId roleId, bool exists) = getRoleForName(roleInfo.name.toString());
319
+
320
+ if (!exists) {
321
+ if (!AccessAdminLib.isDynamicRoleId(authzRoleId)) {
322
+ roleId = authzRoleId;
323
+ }
324
+
325
+ _createRole(
326
+ roleId,
327
+ roleInfo,
328
+ true);
329
+ }
330
+ }
331
+ }
332
+
333
+
334
+ /// @dev Creates a role based on the provided parameters.
335
+ /// Checks that the provided role and role id and role name not already used.
336
+ function _createRole(
337
+ RoleId roleId,
338
+ RoleInfo memory info,
339
+ bool revertOnExistingRole
340
+ )
341
+ internal
342
+ {
343
+ bool isAdminOrPublicRole = AccessAdminLib.checkRoleCreation(this, roleId, info, revertOnExistingRole);
344
+ if (!isAdminOrPublicRole) {
345
+ _createRoleUnchecked(roleId, info);
346
+ }
347
+ }
348
+
349
+
350
+ function _createRoleUnchecked(
351
+ RoleId roleId,
352
+ RoleInfo memory info
353
+ )
354
+ private
355
+ {
356
+ // create role info
357
+ info.createdAt = TimestampLib.current();
358
+ info.pausedAt = TimestampLib.max();
359
+ _roleInfo[roleId] = info;
360
+
361
+ // create role name info
362
+ _roleForName[info.name] = RoleNameInfo({
363
+ roleId: roleId,
364
+ exists: true});
365
+
366
+ // add role to list of roles
367
+ _roleIds.push(roleId);
368
+
369
+ emit LogAccessAdminRoleCreated(_adminName, roleId, info.targetType, info.adminRoleId, info.name.toString());
370
+ }
371
+
372
+
373
+ /// @dev Activates or deactivates role.
374
+ /// The role activ property is indirectly controlled over the pausedAt timestamp.
375
+ function _setRoleActive(RoleId roleId, bool active)
376
+ internal
377
+ {
378
+ AccessAdminLib.checkRoleExists(this, roleId, false, false);
379
+
380
+ if (active) {
381
+ _roleInfo[roleId].pausedAt = TimestampLib.max();
382
+ } else {
383
+ _roleInfo[roleId].pausedAt = TimestampLib.current();
384
+ }
385
+
386
+ Blocknumber lastUpdateIn = _roleInfo[roleId].lastUpdateIn;
387
+ _roleInfo[roleId].lastUpdateIn = BlocknumberLib.current();
388
+
389
+ emit LogAccessAdminRoleActivatedSet(_adminName, roleId, active, lastUpdateIn);
390
+ }
391
+
392
+
393
+ /// @dev grant the specified role to the provided account
394
+ function _grantRoleToAccount(RoleId roleId, address account)
395
+ internal
396
+ {
397
+ AccessAdminLib.checkRoleExists(this, roleId, true, false);
398
+
399
+ // check max role members will not be exceeded
400
+ if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
401
+ revert ErrorAccessAdminRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
402
+ }
403
+
404
+ // check account is contract for contract role
405
+ if (
406
+ _roleInfo[roleId].targetType != TargetType.Custom &&
407
+ !ContractLib.isContract(account) // will fail in account's constructor
408
+ ) {
409
+ revert ErrorAccessAdminRoleMemberNotContract(roleId, account);
410
+ }
411
+
412
+ // effects
413
+ _roleMembers[roleId].add(account);
414
+ _authority.grantRole(
415
+ RoleId.unwrap(roleId),
416
+ account,
417
+ 0);
418
+
419
+ emit LogAccessAdminRoleGranted(
420
+ _adminName,
421
+ account,
422
+ AccessAdminLib.getRoleName(this, roleId));
423
+ }
424
+
425
+
426
+ /// @dev revoke the specified role from the provided account
427
+ function _revokeRoleFromAccount(RoleId roleId, address account)
428
+ internal
429
+ {
430
+ AccessAdminLib.checkRoleExists(this, roleId, false, false);
431
+
432
+ // check for attempt to revoke contract role
433
+ if (_roleInfo[roleId].targetType != TargetType.Custom) {
434
+ revert ErrorAccessAdminRoleMemberRemovalDisabled(roleId, account);
435
+ }
436
+
437
+ // effects
438
+ _roleMembers[roleId].remove(account);
439
+ _authority.revokeRole(
440
+ RoleId.unwrap(roleId),
441
+ account);
442
+
443
+ emit LogAccessAdminRoleRevoked(_adminName, account, _roleInfo[roleId].name.toString());
444
+ }
445
+
446
+
447
+ function _getOrCreateTargetRoleIdAndName(
448
+ address target,
449
+ string memory targetName,
450
+ TargetType targetType
451
+ )
452
+ internal
453
+ returns (
454
+ RoleId roleId,
455
+ string memory roleName,
456
+ bool exists
457
+ )
458
+ {
459
+ roleName = AccessAdminLib.toRoleName(targetName);
460
+ (roleId, exists) = getRoleForName(roleName);
461
+
462
+ if (exists) {
463
+ return (roleId, roleName, true);
464
+ }
465
+
466
+ // get roleId
467
+ if (targetType == TargetType.Service || targetType == TargetType.GenericService) {
468
+ roleId = AccessAdminLib.getServiceRoleId(target, targetType);
469
+ } else {
470
+ uint64 nextRoleId = _nextRoleId[targetType];
471
+ roleId = AccessAdminLib.getTargetRoleId(target, targetType, nextRoleId);
472
+
473
+ // increment target type specific role id counter
474
+ _nextRoleId[targetType]++;
475
+ }
476
+ }
477
+
478
+
479
+ function _createTarget(
480
+ address target,
481
+ string memory targetName,
482
+ TargetType targetType,
483
+ bool checkAuthority
484
+ )
485
+ internal
486
+ returns (RoleId contractRoleId)
487
+ {
488
+ // checks
489
+ AccessAdminLib.checkTargetCreation(this, target, targetName, checkAuthority);
490
+
491
+ // effects
492
+ contractRoleId = _createTargetUnchecked(
493
+ target,
494
+ targetName,
495
+ targetType,
496
+ checkAuthority);
497
+
498
+ // deal with token handler, if applicable
499
+ (
500
+ address tokenHandler,
501
+ string memory tokenHandlerName
502
+ ) = AccessAdminLib.getTokenHandler(target, targetName, targetType);
503
+
504
+ if (tokenHandler != address(0)) {
505
+ _createTargetUnchecked(
506
+ tokenHandler,
507
+ tokenHandlerName,
508
+ targetType,
509
+ checkAuthority);
510
+ }
511
+ }
512
+
513
+
514
+ /// @dev Creates a new target and a corresponding contract role.
515
+ /// The function assigns the role to the target and logs the creation.
516
+ function _createTargetUnchecked(
517
+ address target,
518
+ string memory targetName,
519
+ TargetType targetType,
520
+ bool managed
521
+ )
522
+ internal
523
+ returns (RoleId targetRoleId)
524
+ {
525
+ // create target role (if not existing)
526
+ string memory roleName;
527
+ bool roleExists;
528
+ (targetRoleId, roleName, roleExists) = _getOrCreateTargetRoleIdAndName(target, targetName, targetType);
529
+
530
+ if (!roleExists) {
531
+ _createRole(
532
+ targetRoleId,
533
+ AccessAdminLib.roleInfo(
534
+ ADMIN_ROLE(),
535
+ targetType,
536
+ 1,
537
+ roleName),
538
+ true); // revert on existing role
539
+ }
540
+
541
+ // create target info
542
+ Str name = StrLib.toStr(targetName);
543
+ _targetInfo[target] = TargetInfo({
544
+ name: name,
545
+ targetType: targetType,
546
+ roleId: targetRoleId,
547
+ createdAt: TimestampLib.current(),
548
+ lastUpdateIn: BlocknumberLib.current()});
549
+
550
+ // create name to target mapping
551
+ _targetForName[name] = target;
552
+
553
+ // add target to list of targets
554
+ _targets.push(target);
555
+
556
+ // grant contract role to target
557
+ _grantRoleToAccount(targetRoleId, target);
558
+
559
+ emit LogAccessAdminTargetCreated(_adminName, targetName, managed, target, targetRoleId);
560
+ }
561
+
562
+
563
+ function _setTargetLocked(address target, bool locked)
564
+ internal
565
+ {
566
+ AccessAdminLib.checkTargetExists(this, target);
567
+ _authority.setTargetClosed(target, locked);
568
+
569
+ // logging
570
+ Blocknumber lastUpdateIn = _targetInfo[target].lastUpdateIn;
571
+ _targetInfo[target].lastUpdateIn = BlocknumberLib.current();
572
+
573
+ emit LogAccessAdminTargetLockedSet(_adminName, target, locked, lastUpdateIn);
574
+ }
575
+
576
+
577
+ /// @dev Authorize the functions of the target for the specified role.
578
+ function _authorizeFunctions(IAuthorization authorization, Str target, RoleId roleId)
579
+ internal
580
+ {
581
+ _authorizeTargetFunctions(
582
+ getTargetForName(target),
583
+ AccessAdminLib.getAuthorizedRole(
584
+ this,
585
+ authorization,
586
+ roleId),
587
+ authorization.getAuthorizedFunctions(
588
+ target,
589
+ roleId),
590
+ false,
591
+ true);
592
+ }
593
+
594
+
595
+ /// @dev Authorize the functions of the target for the specified role.
596
+ /// Flag addFunctions determines if functions are added or removed.
597
+ function _authorizeTargetFunctions(
598
+ address target,
599
+ RoleId roleId,
600
+ FunctionInfo[] memory functions,
601
+ bool onlyComponentOrContractTargets,
602
+ bool addFunctions
603
+ )
604
+ internal
605
+ {
606
+ // checks
607
+ AccessAdminLib.checkTargetAndRoleForFunctions(
608
+ this,
609
+ target,
610
+ roleId,
611
+ onlyComponentOrContractTargets);
612
+
613
+ if (addFunctions && roleId == getAdminRole()) {
614
+ revert ErrorAccessAdminAuthorizeForAdminRoleInvalid(target);
615
+ }
616
+
617
+ _authority.setTargetFunctionRole(
618
+ target,
619
+ AccessAdminLib.getSelectors(functions),
620
+ RoleId.unwrap(roleId));
621
+
622
+ // update function set and log function grantings
623
+ for (uint256 i = 0; i < functions.length; i++) {
624
+ _updateFunctionAccess(
625
+ target,
626
+ roleId,
627
+ functions[i],
628
+ addFunctions);
629
+ }
630
+ }
631
+
632
+
633
+ function _updateFunctionAccess(
634
+ address target,
635
+ RoleId roleId,
636
+ FunctionInfo memory func,
637
+ bool addFunction
638
+ )
639
+ internal
640
+ {
641
+ // update functions info
642
+ Selector selector = func.selector;
643
+ Blocknumber lastUpdateIn = _functionInfo[target][selector].lastUpdateIn;
644
+
645
+ // update function sets
646
+ if (addFunction) { SelectorSetLib.add(_targetFunctions[target], selector); }
647
+ else { SelectorSetLib.remove(_targetFunctions[target], selector); }
648
+
649
+ _functionInfo[target][selector] = func;
650
+ _functionInfo[target][selector].lastUpdateIn = BlocknumberLib.current();
651
+
652
+ // logging
653
+ emit LogAccessAdminFunctionGranted(
654
+ _adminName,
655
+ target,
656
+ AccessAdminLib.toFunctionGrantingString(this, func.name, roleId),
657
+ lastUpdateIn);
658
+ }
659
+
660
+
661
+ function _checkAuthorization(
662
+ address authorization,
663
+ ObjectType expectedDomain,
664
+ VersionPart expectedRelease,
665
+ bool expectServiceAuthorization,
666
+ bool checkAlreadyInitialized
667
+ )
668
+ internal
669
+ view
670
+ {
671
+ AccessAdminLib.checkAuthorization(
672
+ address(_authorization),
673
+ authorization,
674
+ expectedDomain,
675
+ expectedRelease,
676
+ expectServiceAuthorization,
677
+ checkAlreadyInitialized);
678
+ }
679
+ }