@etherisc/gif-next 0.0.2-fe77319 → 0.0.2-fe8cf39-182

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 (627) hide show
  1. package/README.md +427 -9
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → authorization/AccessAdmin.sol/IAccessManagedChecker.json} +4 -4
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1509 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +864 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1008 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -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 +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -498
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +772 -0
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +522 -574
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2429 -0
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1046 -0
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +748 -0
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  110. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  111. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  116. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  118. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  120. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  122. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  124. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  126. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  128. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  130. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  132. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  134. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  136. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
  138. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  140. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  142. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  144. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  146. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  148. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  150. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  152. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  154. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  156. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  158. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  160. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  162. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +597 -0
  164. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  166. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  168. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  170. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  172. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +453 -0
  174. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  176. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  178. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  180. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  182. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  184. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  185. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  186. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  188. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  190. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +827 -0
  192. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1054 -115
  194. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1043 -0
  196. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  198. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +1567 -153
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1269 -0
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  219. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  245. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +147 -0
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +329 -0
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  253. package/artifacts/contracts/shared/IService.sol/IService.json +399 -0
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +378 -0
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  273. package/artifacts/contracts/shared/Service.sol/Service.json +453 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1494 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  284. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +469 -0
  286. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  287. package/artifacts/contracts/staking/Staking.sol/Staking.json +1917 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +796 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  360. package/contracts/accounting/AccountingService.sol +262 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +45 -0
  363. package/contracts/authorization/AccessAdmin.sol +689 -0
  364. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  365. package/contracts/authorization/Authorization.sol +337 -0
  366. package/contracts/authorization/IAccess.sol +49 -0
  367. package/contracts/authorization/IAccessAdmin.sol +143 -0
  368. package/contracts/authorization/IAuthorization.sol +74 -0
  369. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  370. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  371. package/contracts/distribution/BasicDistribution.sol +141 -0
  372. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  373. package/contracts/distribution/Distribution.sol +289 -0
  374. package/contracts/distribution/DistributionService.sol +358 -0
  375. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  376. package/contracts/distribution/IDistributionComponent.sol +52 -0
  377. package/contracts/distribution/IDistributionService.sol +101 -0
  378. package/contracts/examples/fire/DamageLevel.sol +59 -0
  379. package/contracts/examples/fire/FirePool.sol +90 -0
  380. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  381. package/contracts/examples/fire/FireProduct.sol +438 -0
  382. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  383. package/contracts/examples/fire/FireUSD.sol +26 -0
  384. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  385. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  387. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  388. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  390. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  391. package/contracts/instance/BundleSet.sol +130 -0
  392. package/contracts/instance/IInstance.sol +65 -15
  393. package/contracts/instance/IInstanceService.sol +73 -0
  394. package/contracts/instance/Instance.sol +237 -46
  395. package/contracts/instance/InstanceAdmin.sol +437 -0
  396. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  397. package/contracts/instance/InstanceReader.sol +637 -0
  398. package/contracts/instance/InstanceService.sol +416 -0
  399. package/contracts/instance/InstanceServiceManager.sol +39 -0
  400. package/contracts/instance/InstanceStore.sol +298 -0
  401. package/contracts/instance/RiskSet.sol +118 -0
  402. package/contracts/instance/base/BalanceStore.sol +123 -0
  403. package/contracts/instance/base/Cloneable.sol +28 -0
  404. package/contracts/instance/base/ObjectCounter.sol +20 -0
  405. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  406. package/contracts/instance/base/ObjectSet.sol +77 -0
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +20 -0
  409. package/contracts/instance/module/IComponents.sol +51 -0
  410. package/contracts/instance/module/IDistribution.sol +42 -0
  411. package/contracts/instance/module/IPolicy.sol +85 -0
  412. package/contracts/instance/module/IRisk.sol +14 -0
  413. package/contracts/mock/Dip.sol +26 -0
  414. package/contracts/oracle/BasicOracle.sol +47 -0
  415. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  416. package/contracts/oracle/IOracle.sol +36 -0
  417. package/contracts/oracle/IOracleComponent.sol +33 -0
  418. package/contracts/oracle/IOracleService.sol +66 -0
  419. package/contracts/oracle/Oracle.sol +156 -0
  420. package/contracts/oracle/OracleService.sol +310 -0
  421. package/contracts/oracle/OracleServiceManager.sol +39 -0
  422. package/contracts/pool/BasicPool.sol +175 -0
  423. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  424. package/contracts/pool/BundleService.sol +395 -0
  425. package/contracts/pool/BundleServiceManager.sol +39 -0
  426. package/contracts/pool/IBundleService.sol +115 -0
  427. package/contracts/pool/IPoolComponent.sol +62 -0
  428. package/contracts/pool/IPoolService.sol +165 -0
  429. package/contracts/pool/Pool.sol +345 -0
  430. package/contracts/pool/PoolLib.sol +216 -0
  431. package/contracts/pool/PoolService.sol +757 -0
  432. package/contracts/pool/PoolServiceManager.sol +39 -0
  433. package/contracts/product/ApplicationService.sol +259 -0
  434. package/contracts/product/ApplicationServiceManager.sol +38 -0
  435. package/contracts/product/BasicProduct.sol +51 -0
  436. package/contracts/product/BasicProductAuthorization.sol +56 -0
  437. package/contracts/product/ClaimService.sol +632 -0
  438. package/contracts/product/ClaimServiceManager.sol +38 -0
  439. package/contracts/product/IApplicationService.sol +66 -0
  440. package/contracts/product/IClaimService.sol +135 -0
  441. package/contracts/product/IPolicyService.sol +95 -0
  442. package/contracts/product/IPricingService.sol +39 -0
  443. package/contracts/product/IProductComponent.sol +62 -0
  444. package/contracts/product/IRiskService.sol +33 -0
  445. package/contracts/product/PolicyService.sol +682 -0
  446. package/contracts/product/PolicyServiceLib.sol +65 -0
  447. package/contracts/product/PolicyServiceManager.sol +39 -0
  448. package/contracts/product/PricingService.sol +304 -0
  449. package/contracts/product/PricingServiceManager.sol +39 -0
  450. package/contracts/product/Product.sol +478 -0
  451. package/contracts/product/RiskService.sol +145 -0
  452. package/contracts/product/RiskServiceManager.sol +39 -0
  453. package/contracts/registry/ChainNft.sol +249 -0
  454. package/contracts/registry/IRegistry.sol +151 -51
  455. package/contracts/registry/IRegistryService.sol +62 -0
  456. package/contracts/registry/IRelease.sol +26 -0
  457. package/contracts/registry/ITransferInterceptor.sol +6 -0
  458. package/contracts/registry/Registry.sol +660 -127
  459. package/contracts/registry/RegistryAdmin.sol +354 -0
  460. package/contracts/registry/RegistryService.sol +241 -0
  461. package/contracts/registry/RegistryServiceManager.sol +53 -0
  462. package/contracts/registry/ReleaseAdmin.sol +245 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  464. package/contracts/registry/ReleaseRegistry.sol +511 -0
  465. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  466. package/contracts/registry/TokenRegistry.sol +313 -0
  467. package/contracts/shared/Component.sol +227 -0
  468. package/contracts/shared/ComponentService.sol +692 -0
  469. package/contracts/shared/ComponentServiceManager.sol +38 -0
  470. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  471. package/contracts/shared/ContractLib.sol +253 -0
  472. package/contracts/shared/IComponent.sol +61 -0
  473. package/contracts/shared/IComponentService.sol +112 -0
  474. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  475. package/contracts/shared/IKeyValueStore.sol +54 -0
  476. package/contracts/shared/ILifecycle.sol +31 -0
  477. package/contracts/shared/INftOwnable.sol +25 -0
  478. package/contracts/shared/IPolicyHolder.sol +35 -0
  479. package/contracts/shared/IRegisterable.sol +37 -0
  480. package/contracts/shared/IRegistryLinked.sol +11 -0
  481. package/contracts/shared/IService.sol +23 -0
  482. package/contracts/shared/InitializableERC165.sol +27 -0
  483. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  484. package/contracts/shared/KeyValueStore.sol +131 -0
  485. package/contracts/shared/Lifecycle.sol +88 -0
  486. package/contracts/shared/NftIdSet.sol +65 -0
  487. package/contracts/shared/NftOwnable.sol +127 -0
  488. package/contracts/shared/PolicyHolder.sol +62 -0
  489. package/contracts/shared/Registerable.sol +109 -0
  490. package/contracts/shared/RegistryLinked.sol +38 -0
  491. package/contracts/shared/Service.sol +65 -0
  492. package/contracts/shared/TokenHandler.sol +341 -0
  493. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  494. package/contracts/staking/IStaking.sol +171 -0
  495. package/contracts/staking/IStakingService.sol +172 -0
  496. package/contracts/staking/StakeManagerLib.sol +276 -0
  497. package/contracts/staking/Staking.sol +546 -0
  498. package/contracts/staking/StakingLifecycle.sol +23 -0
  499. package/contracts/staking/StakingManager.sol +52 -0
  500. package/contracts/staking/StakingReader.sol +180 -0
  501. package/contracts/staking/StakingService.sol +464 -0
  502. package/contracts/staking/StakingServiceManager.sol +45 -0
  503. package/contracts/staking/StakingStore.sol +606 -0
  504. package/contracts/staking/TargetManagerLib.sol +211 -0
  505. package/contracts/type/AddressSet.sol +58 -0
  506. package/contracts/type/Amount.sol +150 -0
  507. package/contracts/type/Blocknumber.sol +142 -0
  508. package/contracts/type/ClaimId.sol +80 -0
  509. package/contracts/type/DistributorType.sol +55 -0
  510. package/contracts/type/Fee.sol +66 -0
  511. package/contracts/type/Key32.sol +50 -0
  512. package/contracts/type/Key32Set.sol +62 -0
  513. package/contracts/type/NftId.sol +85 -0
  514. package/contracts/type/NftIdSet.sol +62 -0
  515. package/contracts/type/ObjectType.sol +303 -0
  516. package/contracts/type/PayoutId.sol +82 -0
  517. package/contracts/type/Referral.sol +90 -0
  518. package/contracts/type/RequestId.sol +75 -0
  519. package/contracts/type/RiskId.sol +74 -0
  520. package/contracts/type/RoleId.sol +182 -0
  521. package/contracts/type/Seconds.sol +101 -0
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/type/StateId.sol +149 -0
  524. package/contracts/type/String.sol +53 -0
  525. package/contracts/type/Timestamp.sol +141 -0
  526. package/contracts/type/UFixed.sol +245 -0
  527. package/contracts/type/Version.sol +120 -0
  528. package/contracts/upgradeability/IVersionable.sol +53 -0
  529. package/contracts/upgradeability/ProxyManager.sol +232 -0
  530. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  531. package/contracts/upgradeability/Versionable.sol +59 -0
  532. package/package.json +26 -7
  533. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  534. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  535. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  536. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  537. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  539. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  540. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  541. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  542. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -195
  543. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  544. package/artifacts/contracts/components/Product.sol/Product.json +0 -213
  545. package/artifacts/contracts/experiment/A.sol/A.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/A.sol/A.json +0 -128
  547. package/artifacts/contracts/experiment/A.sol/AShared.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/A.sol/AShared.json +0 -42
  549. package/artifacts/contracts/experiment/B.sol/B.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/B.sol/B.json +0 -76
  551. package/artifacts/contracts/experiment/C.sol/C.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/C.sol/C.json +0 -89
  553. package/artifacts/contracts/experiment/IA.sol/IA.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/IA.sol/IA.json +0 -128
  555. package/artifacts/contracts/experiment/IA.sol/ISharedA.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/IA.sol/ISharedA.json +0 -37
  557. package/artifacts/contracts/experiment/IB.sol/IB.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/IB.sol/IB.json +0 -50
  559. package/artifacts/contracts/experiment/IC.sol/IC.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/IC.sol/IC.json +0 -63
  561. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  562. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  563. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  564. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  565. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  566. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  567. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  568. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  569. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  570. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  571. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -105
  573. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  574. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  575. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  576. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  577. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  578. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  580. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  581. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  582. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  583. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  584. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  585. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  586. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  587. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  589. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  590. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  591. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  592. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  593. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  595. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  597. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -125
  599. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  600. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  601. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  602. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  603. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  604. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  605. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  606. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  607. package/contracts/components/Component.sol +0 -62
  608. package/contracts/components/IPool.sol +0 -9
  609. package/contracts/components/IProduct.sol +0 -11
  610. package/contracts/components/Pool.sol +0 -29
  611. package/contracts/components/Product.sol +0 -65
  612. package/contracts/experiment/A.sol +0 -56
  613. package/contracts/experiment/B.sol +0 -23
  614. package/contracts/experiment/C.sol +0 -28
  615. package/contracts/experiment/IA.sol +0 -18
  616. package/contracts/experiment/IB.sol +0 -9
  617. package/contracts/experiment/IC.sol +0 -11
  618. package/contracts/instance/access/Access.sol +0 -218
  619. package/contracts/instance/access/IAccess.sol +0 -83
  620. package/contracts/instance/component/ComponentModule.sol +0 -259
  621. package/contracts/instance/component/IComponent.sol +0 -94
  622. package/contracts/instance/policy/IPolicy.sol +0 -66
  623. package/contracts/instance/policy/PolicyModule.sol +0 -106
  624. package/contracts/instance/pool/IPoolModule.sol +0 -40
  625. package/contracts/instance/pool/PoolModule.sol +0 -83
  626. package/contracts/instance/product/IProductService.sol +0 -45
  627. package/contracts/instance/product/ProductService.sol +0 -105
@@ -0,0 +1,689 @@
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
+ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
7
+
8
+ import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
9
+ import {ContractLib} from "../shared/ContractLib.sol";
10
+ import {IAccessAdmin} from "./IAccessAdmin.sol";
11
+ import {IRegistry} from "../registry/IRegistry.sol";
12
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
13
+ import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
14
+ import {Str, StrLib} from "../type/String.sol";
15
+ import {TimestampLib} from "../type/Timestamp.sol";
16
+ import {VersionPart} from "../type/Version.sol";
17
+
18
+ interface IAccessManagedChecker {
19
+ function authority() external view returns (address);
20
+ }
21
+
22
+ /**
23
+ * @dev A generic access amin contract that implements role based access control based on OpenZeppelin's AccessManager contract.
24
+ * The contract provides read functions to query all available roles, targets and access rights.
25
+ * This contract works for both a constructor based deployment or a deployment based on cloning and initialization.
26
+ */
27
+ contract AccessAdmin is
28
+ AccessManagedUpgradeable,
29
+ ReentrancyGuardUpgradeable,
30
+ IAccessAdmin
31
+ {
32
+ using EnumerableSet for EnumerableSet.AddressSet;
33
+
34
+ string public constant ADMIN_ROLE_NAME = "AdminRole";
35
+ string public constant PUBLIC_ROLE_NAME = "PublicRole";
36
+
37
+ /// @dev the OpenZeppelin access manager driving the access admin contract
38
+ AccessManagerCloneable internal _authority;
39
+
40
+ /// @dev stores the deployer address and allows to create initializers
41
+ /// that are restricted to the deployer address.
42
+ address internal _deployer;
43
+
44
+ /// @dev store role info per role id
45
+ mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
46
+
47
+ /// @dev store role name info per role name
48
+ mapping(Str roleName => RoleNameInfo nameInfo) internal _roleForName;
49
+
50
+ /// @dev store array with all created roles
51
+ RoleId [] internal _roleIds;
52
+
53
+ /// @dev store set of current role members for given role
54
+ mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
55
+
56
+ /// @dev store target info per target address
57
+ mapping(address target => TargetInfo info) internal _targetInfo;
58
+
59
+ /// @dev store role name info per role name
60
+ mapping(Str targetName => address target) internal _targetForName;
61
+
62
+ /// @dev store array with all created targets
63
+ address [] internal _targets;
64
+
65
+ /// @dev store all managed functions per target
66
+ mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
67
+
68
+ /// @dev function infos array
69
+ mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
70
+
71
+ /// @dev temporary dynamic functions array
72
+ bytes4[] private _functions;
73
+
74
+ modifier onlyDeployer() {
75
+ // special case for cloned AccessAdmin contracts
76
+ // IMPORTANT cloning and initialize authority needs to be done in a single transaction
77
+ if (_deployer == address(0)) {
78
+ _deployer = msg.sender;
79
+ }
80
+
81
+ if (msg.sender != _deployer) {
82
+ revert ErrorNotDeployer();
83
+ }
84
+ _;
85
+ }
86
+
87
+ modifier onlyRoleAdmin(RoleId roleId) {
88
+ _checkRoleExists(roleId, false);
89
+
90
+ if (!hasAdminRole(msg.sender, roleId)) {
91
+ revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
92
+ }
93
+ _;
94
+ }
95
+
96
+ modifier onlyRoleMember(RoleId roleId) {
97
+ if (!hasRole(msg.sender, roleId)) {
98
+ revert ErrorNotRoleOwner(roleId);
99
+ }
100
+ _;
101
+ }
102
+
103
+ modifier onlyExistingRole(
104
+ RoleId roleId,
105
+ bool onlyActiveRole,
106
+ bool allowLockedRoles
107
+ )
108
+ {
109
+ if (!allowLockedRoles) {
110
+ _checkRoleExists(roleId, onlyActiveRole);
111
+ }
112
+ _;
113
+ }
114
+
115
+ modifier onlyExistingTarget(address target) {
116
+ _checkTarget(target);
117
+ _;
118
+ }
119
+
120
+ //-------------- initialization functions ------------------------------//
121
+
122
+ // event LogAccessAdminDebug(string message);
123
+
124
+ /// @dev Initializes this admin with the provided accessManager (and authorization specification).
125
+ /// Internally initializes access manager with this admin and creates basic role setup.
126
+ function initialize(
127
+ AccessManagerCloneable authority
128
+ )
129
+ public
130
+ initializer()
131
+ {
132
+ __AccessAdmin_init(authority);
133
+ }
134
+
135
+
136
+ function __AccessAdmin_init(
137
+ AccessManagerCloneable authority
138
+ )
139
+ internal
140
+ onlyInitializing()
141
+ onlyDeployer() // initializes deployer if not initialized yet
142
+ {
143
+ authority.initialize(address(this));
144
+
145
+ // set and initialize this access manager contract as
146
+ // the admin (ADMIN_ROLE) of the provided authority
147
+ __AccessManaged_init(address(authority));
148
+ _authority = authority;
149
+
150
+ // create admin and public roles
151
+ _initializeAdminAndPublicRoles();
152
+
153
+ // additional use case specific initialization
154
+ _initializeCustom();
155
+ }
156
+
157
+
158
+ function getRegistry() public view returns (IRegistry registry) {
159
+ return _authority.getRegistry();
160
+ }
161
+
162
+
163
+ function getRelease() public view returns (VersionPart release) {
164
+ return _authority.getRelease();
165
+ }
166
+
167
+
168
+ function _initializeAdminAndPublicRoles()
169
+ internal
170
+ virtual
171
+ onlyInitializing()
172
+ {
173
+ RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
174
+
175
+ // setup admin role
176
+ _createRoleUnchecked(
177
+ ADMIN_ROLE(),
178
+ toRole({
179
+ adminRoleId: ADMIN_ROLE(),
180
+ roleType: RoleType.Contract,
181
+ maxMemberCount: 1,
182
+ name: ADMIN_ROLE_NAME}));
183
+
184
+ // add this contract as admin role member
185
+ _roleMembers[adminRoleId].add(address(this));
186
+
187
+ // setup public role
188
+ _createRoleUnchecked(
189
+ PUBLIC_ROLE(),
190
+ toRole({
191
+ adminRoleId: ADMIN_ROLE(),
192
+ roleType: RoleType.Gif,
193
+ maxMemberCount: type(uint32).max,
194
+ name: PUBLIC_ROLE_NAME}));
195
+ }
196
+
197
+
198
+ function _initializeCustom()
199
+ internal
200
+ virtual
201
+ onlyInitializing()
202
+ { }
203
+
204
+ //--- view functions for roles ------------------------------------------//
205
+
206
+ function roles() external view returns (uint256 numberOfRoles) {
207
+ return _roleIds.length;
208
+ }
209
+
210
+ function getRoleId(uint256 idx) external view returns (RoleId roleId) {
211
+ return _roleIds[idx];
212
+ }
213
+
214
+ function getAdminRole() public view returns (RoleId roleId) {
215
+ return RoleId.wrap(_authority.ADMIN_ROLE());
216
+ }
217
+
218
+ function getPublicRole() public view returns (RoleId roleId) {
219
+ return RoleId.wrap(_authority.PUBLIC_ROLE());
220
+ }
221
+
222
+ function roleExists(RoleId roleId) public view returns (bool exists) {
223
+ return _roleInfo[roleId].createdAt.gtz();
224
+ }
225
+
226
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
227
+ return _roleInfo[roleId];
228
+ }
229
+
230
+ function getRoleForName(Str name) external view returns (RoleNameInfo memory) {
231
+ return _roleForName[name];
232
+ }
233
+
234
+ function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
235
+ return _roleMembers[roleId].length();
236
+ }
237
+
238
+ function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
239
+ return _roleMembers[roleId].at(idx);
240
+ }
241
+
242
+ // TODO false because not role member or because role not exists?
243
+ function hasRole(address account, RoleId roleId) public view returns (bool) {
244
+ (bool isMember, ) = _authority.hasRole(
245
+ RoleId.unwrap(roleId),
246
+ account);
247
+ return isMember;
248
+ }
249
+
250
+ function hasAdminRole(address account, RoleId roleId)
251
+ public
252
+ virtual
253
+ view
254
+ returns (bool)
255
+ {
256
+ return hasRole(account, _roleInfo[roleId].adminRoleId);
257
+ }
258
+
259
+ //--- view functions for targets ----------------------------------------//
260
+
261
+ function targetExists(address target) public view returns (bool exists) {
262
+ return _targetInfo[target].createdAt.gtz();
263
+ }
264
+
265
+ function targets() external view returns (uint256 numberOfTargets) {
266
+ return _targets.length;
267
+ }
268
+
269
+ function getTargetAddress(uint256 idx) external view returns (address target) {
270
+ return _targets[idx];
271
+ }
272
+
273
+ function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo) {
274
+ return _targetInfo[target];
275
+ }
276
+
277
+ function getTargetForName(Str name) public view returns (address target) {
278
+ return _targetForName[name];
279
+ }
280
+
281
+ function isTargetLocked(address target) public view returns (bool locked) {
282
+ return _authority.isTargetClosed(target);
283
+ }
284
+
285
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
286
+ return SelectorSetLib.size(_targetFunctions[target]);
287
+ }
288
+
289
+ function getAuthorizedFunction(
290
+ address target,
291
+ uint256 idx
292
+ )
293
+ external
294
+ view
295
+ returns (
296
+ FunctionInfo memory func,
297
+ RoleId roleId
298
+ )
299
+ {
300
+ Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
301
+ func = _functionInfo[target][selector];
302
+ roleId = RoleIdLib.toRoleId(
303
+ _authority.getTargetFunctionRole(
304
+ target,
305
+ selector.toBytes4()));
306
+ }
307
+
308
+ function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
309
+ (can, ) = _authority.canCall(caller, target, selector.toBytes4());
310
+ }
311
+
312
+ function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
313
+ return RoleInfo({
314
+ name: StrLib.toStr(name),
315
+ adminRoleId: adminRoleId,
316
+ roleType: roleType,
317
+ maxMemberCount: maxMemberCount,
318
+ createdAt: TimestampLib.blockTimestamp(),
319
+ pausedAt: TimestampLib.max()
320
+ });
321
+ }
322
+
323
+ function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
324
+ return FunctionInfo({
325
+ name: StrLib.toStr(name),
326
+ selector: SelectorLib.toSelector(selector),
327
+ createdAt: TimestampLib.blockTimestamp()});
328
+ }
329
+
330
+ function deployer() public view returns (address) {
331
+ return _deployer;
332
+ }
333
+
334
+ //--- internal/private functions -------------------------------------------------//
335
+
336
+ function _authorizeTargetFunctions(
337
+ address target,
338
+ RoleId roleId,
339
+ FunctionInfo[] memory functions
340
+ )
341
+ internal
342
+ {
343
+ if (roleId == getAdminRole()) {
344
+ revert ErrorAuthorizeForAdminRoleInvalid(target);
345
+ }
346
+
347
+ (
348
+ bytes4[] memory functionSelectors,
349
+ string[] memory functionNames
350
+ ) = _processFunctionSelectors(target, functions, true);
351
+
352
+ // apply authz via access manager
353
+ _grantRoleAccessToFunctions(
354
+ target,
355
+ roleId,
356
+ functionSelectors,
357
+ functionNames,
358
+ false); // allow locked roles
359
+ }
360
+
361
+ function _unauthorizeTargetFunctions(
362
+ address target,
363
+ FunctionInfo[] memory functions
364
+ )
365
+ internal
366
+ {
367
+ (
368
+ bytes4[] memory functionSelectors,
369
+ string[] memory functionNames
370
+ ) = _processFunctionSelectors(target, functions, false);
371
+
372
+ _grantRoleAccessToFunctions(
373
+ target,
374
+ getAdminRole(),
375
+ functionSelectors,
376
+ functionNames,
377
+ true); // allowLockedRoles
378
+ }
379
+
380
+ function _processFunctionSelectors(
381
+ address target,
382
+ FunctionInfo[] memory functions,
383
+ bool addFunctions
384
+ )
385
+ internal
386
+ onlyExistingTarget(target)
387
+ returns (
388
+ bytes4[] memory functionSelectors,
389
+ string[] memory functionNames
390
+ )
391
+ {
392
+ uint256 n = functions.length;
393
+ functionSelectors = new bytes4[](n);
394
+ functionNames = new string[](n);
395
+ FunctionInfo memory func;
396
+ Selector selector;
397
+
398
+ for (uint256 i = 0; i < n; i++) {
399
+ func = functions[i];
400
+ selector = func.selector;
401
+
402
+ // add function selector to target selector set if not in set
403
+ if (addFunctions) { SelectorSetLib.add(_targetFunctions[target], selector); }
404
+ else { SelectorSetLib.remove(_targetFunctions[target], selector); }
405
+
406
+ // set function name
407
+ _functionInfo[target][selector] = func;
408
+
409
+ // add bytes4 selector to function selector array
410
+ functionSelectors[i] = selector.toBytes4();
411
+ functionNames[i] = func.name.toString();
412
+ }
413
+ }
414
+
415
+ /// @dev grant the specified role access to all functions in the provided selector list
416
+ function _grantRoleAccessToFunctions(
417
+ address target,
418
+ RoleId roleId,
419
+ bytes4[] memory functionSelectors,
420
+ string[] memory functionNames,
421
+ bool allowLockedRoles // admin and public roles are locked
422
+ )
423
+ internal
424
+ onlyExistingTarget(target)
425
+ onlyExistingRole(roleId, true, allowLockedRoles)
426
+ {
427
+
428
+ _authority.setTargetFunctionRole(
429
+ target,
430
+ functionSelectors,
431
+ RoleId.unwrap(roleId));
432
+
433
+ for (uint256 i = 0; i < functionSelectors.length; i++) {
434
+ emit LogAccessAdminFunctionGranted(
435
+ target,
436
+ // _getAccountName(target),
437
+ // string(abi.encodePacked("", functionSelectors[i])),
438
+ functionNames[i],
439
+ _getRoleName(roleId));
440
+ }
441
+ }
442
+
443
+
444
+ /// @dev grant the specified role to the provided account
445
+ function _grantRoleToAccount(RoleId roleId, address account)
446
+ internal
447
+ onlyExistingRole(roleId, true, false)
448
+ {
449
+ // check max role members will not be exceeded
450
+ if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
451
+ revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
452
+ }
453
+
454
+ // check account is contract for contract role
455
+ if (
456
+ _roleInfo[roleId].roleType == RoleType.Contract &&
457
+ !ContractLib.isContract(account) // will fail in account's constructor
458
+ ) {
459
+ revert ErrorRoleMemberNotContract(roleId, account);
460
+ }
461
+
462
+ // TODO check account already have roleId
463
+ _roleMembers[roleId].add(account);
464
+ _authority.grantRole(
465
+ RoleId.unwrap(roleId),
466
+ account,
467
+ 0);
468
+
469
+ emit LogAccessAdminRoleGranted(account, _getRoleName(roleId));
470
+ }
471
+
472
+ /// @dev revoke the specified role from the provided account
473
+ function _revokeRoleFromAccount(RoleId roleId, address account)
474
+ internal
475
+ onlyExistingRole(roleId, false, false)
476
+ {
477
+
478
+ // check role removal is permitted
479
+ if (_roleInfo[roleId].roleType == RoleType.Contract) {
480
+ revert ErrorRoleMemberRemovalDisabled(roleId, account);
481
+ }
482
+
483
+ // TODO check account have roleId?
484
+ _roleMembers[roleId].remove(account);
485
+ _authority.revokeRole(
486
+ RoleId.unwrap(roleId),
487
+ account);
488
+
489
+ emit LogAccessAdminRoleRevoked(account, _roleInfo[roleId].name.toString());
490
+ }
491
+
492
+
493
+ /// @dev Creates a role based on the provided parameters.
494
+ /// Checks that the provided role and role id and role name not already used.
495
+ function _createRole(
496
+ RoleId roleId,
497
+ RoleInfo memory info
498
+ )
499
+ internal
500
+ {
501
+ // check role does not yet exist
502
+ if(roleExists(roleId)) {
503
+ revert ErrorRoleAlreadyCreated(
504
+ roleId,
505
+ _roleInfo[roleId].name.toString());
506
+ }
507
+
508
+ // check admin role exists
509
+ if(!roleExists(info.adminRoleId)) {
510
+ revert ErrorRoleAdminNotExisting(info.adminRoleId);
511
+ }
512
+
513
+ // check role name is not empty
514
+ if(info.name.length() == 0) {
515
+ revert ErrorRoleNameEmpty(roleId);
516
+ }
517
+
518
+ // check role name is not used for another role
519
+ if(_roleForName[info.name].exists) {
520
+ revert ErrorRoleNameAlreadyExists(
521
+ roleId,
522
+ info.name.toString(),
523
+ _roleForName[info.name].roleId);
524
+ }
525
+
526
+ _createRoleUnchecked(roleId, info);
527
+ }
528
+
529
+
530
+ function _createRoleUnchecked(
531
+ RoleId roleId,
532
+ RoleInfo memory info
533
+ )
534
+ private
535
+ {
536
+ // create role info
537
+ info.createdAt = TimestampLib.blockTimestamp();
538
+ _roleInfo[roleId] = info;
539
+
540
+ // create role name info
541
+ _roleForName[info.name] = RoleNameInfo({
542
+ roleId: roleId,
543
+ exists: true});
544
+
545
+ // add role to list of roles
546
+ _roleIds.push(roleId);
547
+
548
+ emit LogAccessAdminRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
549
+ }
550
+
551
+
552
+ function _createTarget(
553
+ address target,
554
+ string memory targetName,
555
+ bool checkAuthority,
556
+ bool custom
557
+ )
558
+ internal
559
+ {
560
+ // check target does not yet exist
561
+ if(targetExists(target)) {
562
+ revert ErrorTargetAlreadyCreated(
563
+ target,
564
+ _targetInfo[target].name.toString());
565
+ }
566
+
567
+ // check target name is not empty
568
+ Str name = StrLib.toStr(targetName);
569
+ if(name.length() == 0) {
570
+ revert ErrorTargetNameEmpty(target);
571
+ }
572
+
573
+ // check target name is not used for another target
574
+ if( _targetForName[name] != address(0)) {
575
+ revert ErrorTargetNameAlreadyExists(
576
+ target,
577
+ targetName,
578
+ _targetForName[name]);
579
+ }
580
+
581
+ // check target is an access managed contract
582
+ if (!_isAccessManaged(target)) {
583
+ revert ErrorTargetNotAccessManaged(target);
584
+ }
585
+
586
+ // check target shares authority with this contract
587
+ if (checkAuthority) {
588
+ address targetAuthority = AccessManagedUpgradeable(target).authority();
589
+ if (targetAuthority != authority()) {
590
+ revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
591
+ }
592
+ }
593
+
594
+ // create target info
595
+ _targetInfo[target] = TargetInfo({
596
+ name: name,
597
+ isCustom: custom,
598
+ createdAt: TimestampLib.blockTimestamp()
599
+ });
600
+
601
+ // create name to target mapping
602
+ _targetForName[name] = target;
603
+
604
+ // add role to list of roles
605
+ _targets.push(target);
606
+
607
+ emit LogAccessAdminTargetCreated(target, targetName);
608
+ }
609
+
610
+
611
+ function _isAccessManaged(address target)
612
+ internal
613
+ view
614
+ returns (bool)
615
+ {
616
+ if (!ContractLib.isContract(target)) {
617
+ return false;
618
+ }
619
+
620
+ (bool success, ) = target.staticcall(
621
+ abi.encodeWithSelector(
622
+ IAccessManagedChecker.authority.selector));
623
+
624
+ return success;
625
+ }
626
+
627
+
628
+ function _setTargetClosed(address target, bool locked)
629
+ internal
630
+ {
631
+ _checkTarget(target);
632
+
633
+ // target locked/unlocked already
634
+ if(_authority.isTargetClosed(target) == locked) {
635
+ revert ErrorTargetAlreadyLocked(target, locked);
636
+ }
637
+
638
+ _authority.setTargetClosed(target, locked);
639
+ }
640
+
641
+ function _getAccountName(address account) internal view returns (string memory) {
642
+ if (targetExists(account)) {
643
+ return _targetInfo[account].name.toString();
644
+ }
645
+ return "<unknown-account>";
646
+ }
647
+
648
+
649
+ function _getRoleName(RoleId roleId) internal view returns (string memory) {
650
+ if (roleExists(roleId)) {
651
+ return _roleInfo[roleId].name.toString();
652
+ }
653
+ return "<unknown-role>";
654
+ }
655
+
656
+
657
+ function _checkRoleExists(
658
+ RoleId roleId,
659
+ bool onlyActiveRole
660
+ )
661
+ internal
662
+ view
663
+ {
664
+ if (!roleExists(roleId)) {
665
+ revert ErrorRoleUnknown(roleId);
666
+ }
667
+
668
+ uint64 roleIdInt = RoleId.unwrap(roleId);
669
+ if (roleIdInt == _authority.ADMIN_ROLE()) {
670
+ revert ErrorRoleIsLocked(roleId);
671
+ }
672
+
673
+ // check if role is disabled
674
+ if (onlyActiveRole && _roleInfo[roleId].pausedAt <= TimestampLib.blockTimestamp()) {
675
+ revert ErrorRoleIsPaused(roleId);
676
+ }
677
+ }
678
+
679
+
680
+ /// @dev check if target exists and reverts if it doesn't
681
+ function _checkTarget(address target)
682
+ internal
683
+ view
684
+ {
685
+ if (!targetExists(target)) {
686
+ revert ErrorTargetUnknown(target);
687
+ }
688
+ }
689
+ }