@etherisc/gif-next 0.0.2-86e23a6-752 → 0.0.2-86fb77b-888

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 (773) hide show
  1. package/README.md +137 -396
  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/{instance/service/IBundleService.sol/IBundleService.json → accounting/IAccountingService.sol/IAccountingService.json} +436 -391
  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} +355 -366
  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/distribution/IDistributionComponent.sol/IDistributionComponent.json +838 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionService.sol/IDistributionService.json} +579 -728
  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 +510 -1722
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +598 -170
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +657 -2633
  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 +1870 -730
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +587 -499
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +327 -145
  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 -49
  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 +4 -0
  108. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  109. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  110. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  111. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  112. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  113. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  121. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +317 -309
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  125. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +300 -334
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  131. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +467 -601
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  141. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +392 -391
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  144. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  145. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  146. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  148. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  150. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  152. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  154. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  156. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  157. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +457 -598
  158. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  159. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  160. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  162. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  164. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +328 -308
  166. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  168. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  170. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IPricingService.sol/IPricingService.json} +336 -233
  172. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  173. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +483 -290
  174. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  175. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IRiskService.sol/IRiskService.json} +286 -259
  176. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  178. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  180. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  182. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  184. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  186. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  187. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  188. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  190. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  191. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  192. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  194. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +515 -31
  196. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  197. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +277 -260
  198. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  199. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  200. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  202. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/Registry.sol/Registry.json +999 -124
  204. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  206. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  208. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  209. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +346 -455
  210. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +325 -133
  212. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  214. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  216. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  218. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  220. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  221. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +350 -160
  222. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  223. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → shared/Component.sol/Component.json} +339 -300
  224. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  226. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  235. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  237. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +233 -133
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -32
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -14
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -34
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  253. package/artifacts/contracts/shared/IService.sol/IService.json +141 -147
  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 +785 -0
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +45 -120
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -106
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +128 -146
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -49
  270. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Service.sol/Service.json +136 -281
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  282. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  283. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  286. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  298. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  299. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -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 +270 -0
  308. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  346. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  354. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  362. package/contracts/accounting/AccountingService.sol +274 -0
  363. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  364. package/contracts/accounting/IAccountingService.sol +47 -0
  365. package/contracts/authorization/AccessAdmin.sol +679 -0
  366. package/contracts/authorization/AccessAdminLib.sol +678 -0
  367. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  368. package/contracts/authorization/Authorization.sol +190 -0
  369. package/contracts/authorization/IAccess.sol +66 -0
  370. package/contracts/authorization/IAccessAdmin.sol +142 -0
  371. package/contracts/authorization/IAuthorization.sol +26 -0
  372. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  373. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  374. package/contracts/distribution/BasicDistribution.sol +140 -0
  375. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  376. package/contracts/distribution/Distribution.sol +245 -0
  377. package/contracts/distribution/DistributionService.sol +448 -0
  378. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  379. package/contracts/distribution/IDistributionComponent.sol +45 -0
  380. package/contracts/distribution/IDistributionService.sol +115 -0
  381. package/contracts/examples/fire/DamageLevel.sol +59 -0
  382. package/contracts/examples/fire/FirePool.sol +86 -0
  383. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  384. package/contracts/examples/fire/FireProduct.sol +433 -0
  385. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  386. package/contracts/examples/fire/FireUSD.sol +26 -0
  387. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  388. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  390. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  391. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  393. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  394. package/contracts/instance/BaseStore.sol +93 -0
  395. package/contracts/instance/BundleSet.sol +130 -0
  396. package/contracts/instance/IBaseStore.sol +37 -0
  397. package/contracts/instance/IInstance.sol +147 -77
  398. package/contracts/instance/IInstanceService.sol +86 -26
  399. package/contracts/instance/Instance.sol +266 -196
  400. package/contracts/instance/InstanceAdmin.sol +307 -0
  401. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  402. package/contracts/instance/InstanceReader.sol +506 -193
  403. package/contracts/instance/InstanceService.sol +421 -349
  404. package/contracts/instance/InstanceServiceManager.sol +14 -29
  405. package/contracts/instance/InstanceStore.sol +323 -0
  406. package/contracts/instance/ProductStore.sol +290 -0
  407. package/contracts/instance/RiskSet.sol +126 -0
  408. package/contracts/instance/TargetNames.sol +10 -0
  409. package/contracts/instance/base/BalanceStore.sol +121 -0
  410. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  411. package/contracts/instance/base/ObjectCounter.sol +20 -0
  412. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  413. package/contracts/instance/base/ObjectSet.sol +77 -0
  414. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  415. package/contracts/instance/module/IBundle.sol +10 -9
  416. package/contracts/instance/module/IComponents.sol +60 -0
  417. package/contracts/instance/module/IDistribution.sol +25 -10
  418. package/contracts/instance/module/IPolicy.sol +81 -21
  419. package/contracts/instance/module/IRisk.sol +6 -1
  420. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  421. package/contracts/oracle/BasicOracle.sol +44 -0
  422. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  423. package/contracts/oracle/IOracle.sol +41 -0
  424. package/contracts/oracle/IOracleComponent.sol +33 -0
  425. package/contracts/oracle/IOracleService.sol +66 -0
  426. package/contracts/oracle/Oracle.sol +152 -0
  427. package/contracts/oracle/OracleService.sol +310 -0
  428. package/contracts/oracle/OracleServiceManager.sol +39 -0
  429. package/contracts/pool/BasicPool.sol +161 -0
  430. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  431. package/contracts/pool/BundleService.sol +386 -0
  432. package/contracts/pool/BundleServiceManager.sol +39 -0
  433. package/contracts/pool/IBundleService.sol +116 -0
  434. package/contracts/pool/IPoolComponent.sol +62 -0
  435. package/contracts/pool/IPoolService.sol +170 -0
  436. package/contracts/pool/Pool.sol +331 -0
  437. package/contracts/pool/PoolLib.sol +341 -0
  438. package/contracts/pool/PoolService.sol +614 -0
  439. package/contracts/pool/PoolServiceManager.sol +39 -0
  440. package/contracts/product/ApplicationService.sol +327 -0
  441. package/contracts/product/ApplicationServiceManager.sol +38 -0
  442. package/contracts/product/BasicProduct.sol +48 -0
  443. package/contracts/product/BasicProductAuthorization.sol +63 -0
  444. package/contracts/product/ClaimService.sol +626 -0
  445. package/contracts/product/ClaimServiceManager.sol +38 -0
  446. package/contracts/{instance/service → product}/IApplicationService.sol +43 -37
  447. package/contracts/product/IClaimService.sol +136 -0
  448. package/contracts/product/IPolicyService.sol +102 -0
  449. package/contracts/product/IPricingService.sol +40 -0
  450. package/contracts/product/IProductComponent.sol +62 -0
  451. package/contracts/product/IRiskService.sol +48 -0
  452. package/contracts/product/PolicyService.sol +645 -0
  453. package/contracts/product/PolicyServiceLib.sol +139 -0
  454. package/contracts/product/PolicyServiceManager.sol +39 -0
  455. package/contracts/product/PricingService.sol +306 -0
  456. package/contracts/product/PricingServiceManager.sol +39 -0
  457. package/contracts/product/Product.sol +491 -0
  458. package/contracts/product/RiskService.sol +189 -0
  459. package/contracts/product/RiskServiceManager.sol +39 -0
  460. package/contracts/registry/ChainNft.sol +83 -36
  461. package/contracts/registry/IRegistry.sol +106 -33
  462. package/contracts/registry/IRegistryService.sol +37 -42
  463. package/contracts/registry/IRelease.sol +29 -0
  464. package/contracts/registry/ITransferInterceptor.sol +1 -1
  465. package/contracts/registry/Registry.sol +481 -209
  466. package/contracts/registry/RegistryAdmin.sol +173 -0
  467. package/contracts/registry/RegistryAuthorization.sol +337 -0
  468. package/contracts/registry/RegistryService.sol +106 -142
  469. package/contracts/registry/RegistryServiceManager.sol +24 -33
  470. package/contracts/registry/ReleaseAdmin.sol +199 -0
  471. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  472. package/contracts/registry/ReleaseRegistry.sol +525 -0
  473. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  474. package/contracts/registry/TokenRegistry.sol +266 -62
  475. package/contracts/shared/Component.sol +210 -0
  476. package/contracts/shared/ComponentService.sol +691 -0
  477. package/contracts/shared/ComponentServiceManager.sol +38 -0
  478. package/contracts/shared/ContractLib.sol +312 -0
  479. package/contracts/shared/IComponent.sol +58 -0
  480. package/contracts/shared/IComponentService.sol +111 -0
  481. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  482. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  483. package/contracts/shared/INftOwnable.sol +10 -11
  484. package/contracts/shared/IPolicyHolder.sol +23 -14
  485. package/contracts/shared/IRegisterable.sol +22 -1
  486. package/contracts/shared/IRegistryLinked.sol +0 -4
  487. package/contracts/shared/IService.sol +12 -5
  488. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +14 -5
  489. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  490. package/contracts/shared/Lifecycle.sol +88 -0
  491. package/contracts/shared/NftIdSet.sol +65 -0
  492. package/contracts/shared/NftOwnable.sol +43 -104
  493. package/contracts/shared/PolicyHolder.sol +23 -41
  494. package/contracts/shared/Registerable.sol +50 -25
  495. package/contracts/shared/RegistryLinked.sol +11 -37
  496. package/contracts/shared/Service.sol +42 -35
  497. package/contracts/shared/TokenHandler.sol +327 -12
  498. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  499. package/contracts/staking/IStaking.sol +366 -0
  500. package/contracts/staking/IStakingService.sol +127 -0
  501. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  502. package/contracts/staking/Staking.sol +797 -0
  503. package/contracts/staking/StakingLib.sol +195 -0
  504. package/contracts/staking/StakingManager.sol +53 -0
  505. package/contracts/staking/StakingReader.sol +171 -0
  506. package/contracts/staking/StakingService.sol +321 -0
  507. package/contracts/staking/StakingServiceManager.sol +46 -0
  508. package/contracts/staking/StakingStore.sol +1368 -0
  509. package/contracts/staking/TargetHandler.sol +132 -0
  510. package/contracts/staking/TargetManagerLib.sol +234 -0
  511. package/contracts/{types → type}/AddressSet.sol +1 -1
  512. package/contracts/type/Amount.sol +154 -0
  513. package/contracts/{types → type}/Blocknumber.sol +38 -19
  514. package/contracts/type/ChainId.sol +101 -0
  515. package/contracts/type/ClaimId.sol +80 -0
  516. package/contracts/type/Fee.sol +66 -0
  517. package/contracts/{types → type}/Key32.sol +2 -2
  518. package/contracts/type/Key32Set.sol +62 -0
  519. package/contracts/{types → type}/NftId.sol +28 -15
  520. package/contracts/{types → type}/NftIdSet.sol +2 -2
  521. package/contracts/type/ObjectType.sol +307 -0
  522. package/contracts/type/PayoutId.sol +82 -0
  523. package/contracts/{types → type}/Referral.sol +6 -1
  524. package/contracts/type/RequestId.sol +75 -0
  525. package/contracts/type/RiskId.sol +75 -0
  526. package/contracts/type/RoleId.sol +180 -0
  527. package/contracts/type/Seconds.sol +120 -0
  528. package/contracts/type/Selector.sol +107 -0
  529. package/contracts/{types → type}/StateId.sol +48 -4
  530. package/contracts/type/String.sol +65 -0
  531. package/contracts/{types → type}/Timestamp.sol +36 -20
  532. package/contracts/type/UFixed.sol +263 -0
  533. package/contracts/{types → type}/Version.sol +59 -7
  534. package/contracts/{shared → upgradeability}/IVersionable.sol +7 -47
  535. package/contracts/upgradeability/ProxyManager.sol +246 -0
  536. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  537. package/contracts/upgradeability/Versionable.sol +62 -0
  538. package/package.json +12 -8
  539. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  540. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  541. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  543. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  545. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  546. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  549. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  551. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  553. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  555. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  557. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  559. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  561. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  563. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  565. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  567. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  569. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  571. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  573. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  575. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  577. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  579. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  581. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  582. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  583. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  584. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  585. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  586. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  587. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  589. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  590. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  591. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  592. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  593. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  594. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  597. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  599. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  600. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  601. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  602. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  603. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  604. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  605. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1117
  607. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1318
  609. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -586
  611. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1200
  613. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -614
  615. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  617. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  619. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -512
  621. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  623. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1378
  624. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  625. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -642
  626. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  627. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -957
  628. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  629. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -574
  630. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  631. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1007
  632. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  633. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -574
  634. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  635. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  636. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  637. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  638. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  639. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  640. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  641. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  642. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  643. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  644. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  645. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -499
  646. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  647. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  648. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  649. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  650. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  651. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  652. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  653. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -446
  654. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  655. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  656. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  657. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -759
  658. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  659. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  660. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  661. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  662. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  663. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  664. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  665. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  666. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  667. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  668. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  670. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  672. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  673. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  674. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  675. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  676. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  677. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  678. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  680. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  681. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  682. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  683. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  684. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  685. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  686. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  687. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  688. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  689. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  690. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  691. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  692. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  693. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  694. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  695. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  696. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  697. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  698. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  699. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  700. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  701. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  702. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  703. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  704. package/contracts/components/Component.sol +0 -236
  705. package/contracts/components/Distribution.sol +0 -308
  706. package/contracts/components/IComponent.sol +0 -50
  707. package/contracts/components/IDistributionComponent.sol +0 -100
  708. package/contracts/components/IPoolComponent.sol +0 -87
  709. package/contracts/components/IProductComponent.sol +0 -39
  710. package/contracts/components/Pool.sol +0 -254
  711. package/contracts/components/Product.sol +0 -278
  712. package/contracts/experiment/cloning/Cloner.sol +0 -47
  713. package/contracts/experiment/errors/Require.sol +0 -38
  714. package/contracts/experiment/errors/Revert.sol +0 -44
  715. package/contracts/experiment/inheritance/A.sol +0 -53
  716. package/contracts/experiment/inheritance/B.sol +0 -28
  717. package/contracts/experiment/inheritance/C.sol +0 -34
  718. package/contracts/experiment/inheritance/IA.sol +0 -13
  719. package/contracts/experiment/inheritance/IB.sol +0 -10
  720. package/contracts/experiment/inheritance/IC.sol +0 -12
  721. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  722. package/contracts/experiment/statemachine/ISM.sol +0 -25
  723. package/contracts/experiment/statemachine/SM.sol +0 -57
  724. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  725. package/contracts/experiment/types/TypeA.sol +0 -47
  726. package/contracts/experiment/types/TypeB.sol +0 -29
  727. package/contracts/instance/BundleManager.sol +0 -125
  728. package/contracts/instance/InstanceAccessManager.sol +0 -297
  729. package/contracts/instance/ObjectManager.sol +0 -84
  730. package/contracts/instance/base/ComponentService.sol +0 -134
  731. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  732. package/contracts/instance/base/KeyValueStore.sol +0 -172
  733. package/contracts/instance/base/Lifecycle.sol +0 -100
  734. package/contracts/instance/module/IAccess.sol +0 -47
  735. package/contracts/instance/module/ISetup.sol +0 -47
  736. package/contracts/instance/module/ITreasury.sol +0 -23
  737. package/contracts/instance/service/ApplicationService.sol +0 -268
  738. package/contracts/instance/service/BundleService.sol +0 -298
  739. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  740. package/contracts/instance/service/DistributionService.sol +0 -291
  741. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  742. package/contracts/instance/service/IBundleService.sol +0 -54
  743. package/contracts/instance/service/IDistributionService.sol +0 -65
  744. package/contracts/instance/service/IPolicyService.sol +0 -88
  745. package/contracts/instance/service/IPoolService.sol +0 -20
  746. package/contracts/instance/service/IProductService.sol +0 -40
  747. package/contracts/instance/service/PolicyService.sol +0 -524
  748. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  749. package/contracts/instance/service/PoolService.sol +0 -109
  750. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  751. package/contracts/instance/service/ProductService.sol +0 -233
  752. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  753. package/contracts/registry/RegistryAccessManager.sol +0 -216
  754. package/contracts/registry/ReleaseManager.sol +0 -331
  755. package/contracts/shared/ContractDeployerLib.sol +0 -72
  756. package/contracts/shared/ProxyManager.sol +0 -95
  757. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  758. package/contracts/shared/Versionable.sol +0 -148
  759. package/contracts/test/TestFee.sol +0 -25
  760. package/contracts/test/TestRegisterable.sol +0 -18
  761. package/contracts/test/TestRoleId.sol +0 -14
  762. package/contracts/test/TestService.sol +0 -25
  763. package/contracts/test/TestVersion.sol +0 -44
  764. package/contracts/test/TestVersionable.sol +0 -17
  765. package/contracts/test/Usdc.sol +0 -26
  766. package/contracts/types/ChainId.sol +0 -38
  767. package/contracts/types/Fee.sol +0 -56
  768. package/contracts/types/NumberId.sol +0 -52
  769. package/contracts/types/ObjectType.sol +0 -156
  770. package/contracts/types/RiskId.sol +0 -43
  771. package/contracts/types/RoleId.sol +0 -90
  772. package/contracts/types/UFixed.sol +0 -325
  773. /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
+ }