@etherisc/gif-next 0.0.2-c5c9395-682 → 0.0.2-c637cfc-718

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 (656) hide show
  1. package/README.md +51 -5
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1013 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1012 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +198 -261
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +178 -336
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +296 -2011
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +198 -74
  50. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/Instance.sol/Instance.json +353 -2827
  52. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +898 -337
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +246 -372
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +129 -156
  62. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -0
  64. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  66. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  68. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  70. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  72. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  76. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  81. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  82. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  92. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +255 -186
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  94. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +236 -207
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  100. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +275 -403
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  102. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  104. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  106. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +802 -0
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  108. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +295 -47
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  110. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  112. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +476 -122
  113. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  114. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +346 -376
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  116. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1474 -0
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  118. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +726 -0
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  124. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +336 -407
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  128. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1346 -0
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +814 -0
  131. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +136 -94
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  134. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +867 -0
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  138. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +117 -190
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  140. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +309 -191
  141. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +12 -62
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  144. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1223 -0
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +762 -0
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  148. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  150. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  151. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  152. package/artifacts/contracts/product/Product.sol/Product.json +1054 -0
  153. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  154. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  155. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  158. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  160. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +385 -31
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  162. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -125
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +783 -46
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -185
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +126 -95
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  180. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +268 -190
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  183. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  187. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +432 -0
  188. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  189. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  191. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +107 -107
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  195. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  199. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  200. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
  202. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  204. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  206. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  207. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  208. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
  210. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  212. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  213. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  214. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  215. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  216. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  217. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  218. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  220. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  221. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  222. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +12 -70
  224. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  225. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  226. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +18 -106
  228. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  229. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  230. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  231. package/artifacts/contracts/shared/Service.sol/Service.json +19 -115
  232. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  234. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  235. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  236. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  237. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +684 -575
  238. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  240. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  242. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  243. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  244. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  246. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  248. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  250. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  252. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  254. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  256. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  258. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  259. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  260. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  262. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  264. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  266. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  270. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  272. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  274. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  275. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  276. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  278. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  280. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  282. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  284. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  286. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  288. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  290. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  292. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  294. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  296. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  298. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  300. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  302. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  304. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  306. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  308. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  309. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  310. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  312. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  314. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  315. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  316. package/contracts/authorization/AccessAdmin.sol +592 -0
  317. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  318. package/contracts/authorization/Authorization.sol +217 -0
  319. package/contracts/authorization/IAccess.sol +48 -0
  320. package/contracts/authorization/IAccessAdmin.sol +135 -0
  321. package/contracts/authorization/IAuthorization.sol +54 -0
  322. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  323. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  324. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  325. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  326. package/contracts/distribution/BasicDistribution.sol +138 -0
  327. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  328. package/contracts/{components → distribution}/Distribution.sol +178 -163
  329. package/contracts/distribution/DistributionService.sol +336 -0
  330. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  331. package/contracts/distribution/IDistributionComponent.sol +52 -0
  332. package/contracts/{instance/service → distribution}/IDistributionService.sol +40 -38
  333. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  334. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  335. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  336. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  337. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +30 -31
  338. package/contracts/instance/IInstance.sol +38 -73
  339. package/contracts/instance/IInstanceService.sol +50 -30
  340. package/contracts/instance/Instance.sol +147 -245
  341. package/contracts/instance/InstanceAdmin.sol +285 -0
  342. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  343. package/contracts/instance/InstanceReader.sol +202 -63
  344. package/contracts/instance/InstanceService.sol +305 -334
  345. package/contracts/instance/InstanceServiceManager.sol +14 -29
  346. package/contracts/instance/InstanceStore.sol +287 -0
  347. package/contracts/instance/base/BalanceStore.sol +123 -0
  348. package/contracts/instance/base/Cloneable.sol +28 -0
  349. package/contracts/instance/base/ObjectCounter.sol +21 -0
  350. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  351. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
  352. package/contracts/instance/module/IAccess.sol +4 -12
  353. package/contracts/instance/module/IBundle.sol +6 -9
  354. package/contracts/instance/module/IComponents.sol +20 -15
  355. package/contracts/instance/module/IDistribution.sol +6 -6
  356. package/contracts/instance/module/IPolicy.sol +47 -35
  357. package/contracts/instance/module/IRisk.sol +1 -1
  358. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  359. package/contracts/oracle/BasicOracle.sol +48 -0
  360. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  361. package/contracts/oracle/IOracle.sol +36 -0
  362. package/contracts/oracle/IOracleComponent.sol +33 -0
  363. package/contracts/oracle/IOracleService.sol +65 -0
  364. package/contracts/oracle/Oracle.sol +167 -0
  365. package/contracts/oracle/OracleService.sol +281 -0
  366. package/contracts/oracle/OracleServiceManager.sol +39 -0
  367. package/contracts/pool/BasicPool.sol +166 -0
  368. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  369. package/contracts/pool/BundleService.sol +438 -0
  370. package/contracts/pool/BundleServiceManager.sol +39 -0
  371. package/contracts/pool/IBundleService.sol +134 -0
  372. package/contracts/pool/IPoolComponent.sol +58 -0
  373. package/contracts/pool/IPoolService.sol +160 -0
  374. package/contracts/pool/Pool.sol +326 -0
  375. package/contracts/pool/PoolService.sol +508 -0
  376. package/contracts/pool/PoolServiceManager.sol +39 -0
  377. package/contracts/product/ApplicationService.sol +247 -0
  378. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  379. package/contracts/product/BasicProduct.sol +53 -0
  380. package/contracts/product/BasicProductAuthorization.sol +43 -0
  381. package/contracts/product/ClaimService.sol +536 -0
  382. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  383. package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
  384. package/contracts/product/IClaimService.sol +122 -0
  385. package/contracts/product/IPolicyService.sol +77 -0
  386. package/contracts/product/IPricingService.sol +39 -0
  387. package/contracts/product/IProductComponent.sol +39 -0
  388. package/contracts/product/IRiskService.sol +33 -0
  389. package/contracts/product/PolicyService.sol +646 -0
  390. package/contracts/product/PolicyServiceManager.sol +39 -0
  391. package/contracts/product/PricingService.sol +300 -0
  392. package/contracts/product/PricingServiceManager.sol +39 -0
  393. package/contracts/product/Product.sol +425 -0
  394. package/contracts/product/RiskService.sol +96 -0
  395. package/contracts/product/RiskServiceManager.sol +39 -0
  396. package/contracts/registry/ChainNft.sol +72 -32
  397. package/contracts/registry/IRegistry.sol +92 -25
  398. package/contracts/registry/IRegistryService.sol +42 -41
  399. package/contracts/registry/Registry.sol +427 -192
  400. package/contracts/registry/RegistryAdmin.sol +464 -0
  401. package/contracts/registry/RegistryService.sol +70 -100
  402. package/contracts/registry/RegistryServiceManager.sol +23 -32
  403. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  404. package/contracts/registry/ReleaseRegistry.sol +491 -0
  405. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  406. package/contracts/registry/TokenRegistry.sol +261 -62
  407. package/contracts/shared/Component.sol +268 -0
  408. package/contracts/shared/ComponentService.sol +641 -0
  409. package/contracts/shared/ComponentServiceManager.sol +38 -0
  410. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  411. package/contracts/shared/ContractLib.sol +38 -0
  412. package/contracts/shared/IComponent.sol +70 -0
  413. package/contracts/shared/IComponentService.sol +108 -0
  414. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  415. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  416. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  417. package/contracts/shared/INftOwnable.sol +2 -2
  418. package/contracts/shared/IPolicyHolder.sol +23 -14
  419. package/contracts/shared/IRegistryLinked.sol +0 -1
  420. package/contracts/shared/IService.sol +12 -3
  421. package/contracts/shared/InitializableCustom.sol +177 -0
  422. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  423. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  424. package/contracts/shared/KeyValueStore.sol +131 -0
  425. package/contracts/shared/Lifecycle.sol +77 -0
  426. package/contracts/shared/NftIdSet.sol +65 -0
  427. package/contracts/shared/NftOwnable.sol +10 -23
  428. package/contracts/shared/PolicyHolder.sol +19 -42
  429. package/contracts/shared/Registerable.sol +17 -16
  430. package/contracts/shared/RegistryLinked.sol +3 -7
  431. package/contracts/shared/Service.sol +48 -33
  432. package/contracts/shared/TokenHandler.sol +115 -9
  433. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  434. package/contracts/staking/IStaking.sol +168 -0
  435. package/contracts/staking/IStakingService.sol +160 -0
  436. package/contracts/staking/StakeManagerLib.sol +224 -0
  437. package/contracts/staking/Staking.sol +498 -0
  438. package/contracts/staking/StakingLifecycle.sol +23 -0
  439. package/contracts/staking/StakingManager.sol +52 -0
  440. package/contracts/staking/StakingReader.sol +183 -0
  441. package/contracts/staking/StakingService.sol +407 -0
  442. package/contracts/staking/StakingServiceManager.sol +44 -0
  443. package/contracts/staking/StakingStore.sol +605 -0
  444. package/contracts/staking/TargetManagerLib.sol +211 -0
  445. package/contracts/{types → type}/AddressSet.sol +1 -1
  446. package/contracts/type/Amount.sol +135 -0
  447. package/contracts/{types → type}/Blocknumber.sol +26 -3
  448. package/contracts/{types → type}/ClaimId.sol +25 -2
  449. package/contracts/{types → type}/Fee.sol +24 -22
  450. package/contracts/{types → type}/NftId.sol +14 -16
  451. package/contracts/{types → type}/NftIdSet.sol +2 -2
  452. package/contracts/type/ObjectType.sol +275 -0
  453. package/contracts/{types → type}/PayoutId.sol +33 -5
  454. package/contracts/{types → type}/Referral.sol +2 -1
  455. package/contracts/type/RequestId.sol +75 -0
  456. package/contracts/{types → type}/RiskId.sol +1 -1
  457. package/contracts/type/RoleId.sol +174 -0
  458. package/contracts/type/Seconds.sol +101 -0
  459. package/contracts/type/Selector.sol +102 -0
  460. package/contracts/{types → type}/StateId.sol +34 -4
  461. package/contracts/type/String.sol +53 -0
  462. package/contracts/{types → type}/Timestamp.sol +21 -2
  463. package/contracts/{types → type}/UFixed.sol +34 -9
  464. package/contracts/{types → type}/Version.sol +4 -2
  465. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  466. package/contracts/{shared → upgradeability}/ProxyManager.sol +92 -30
  467. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  468. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  469. package/package.json +8 -5
  470. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  471. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  472. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  473. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  474. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  475. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  476. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  477. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  478. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  479. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  480. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  481. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  482. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  483. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  485. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  486. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  487. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  489. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  491. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  492. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  494. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  495. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  496. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  497. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
  499. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  500. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
  501. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  502. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
  503. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  504. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
  505. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  506. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
  507. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  508. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
  509. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  510. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  511. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  512. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  513. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  514. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  515. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  516. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  517. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  518. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  519. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  520. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  521. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1092
  522. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
  524. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  525. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
  526. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  527. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
  528. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  529. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  530. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  531. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  532. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  533. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  534. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  535. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
  536. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  537. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  538. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  539. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  540. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  541. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  542. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  543. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  544. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  545. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  546. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  547. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  548. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  549. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  550. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  551. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  552. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  553. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  554. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  555. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  556. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  557. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  558. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  559. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  560. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  561. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  562. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  563. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  564. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  565. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
  566. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  567. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  568. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  569. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  570. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  571. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  572. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  573. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  574. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  575. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  576. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  577. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  578. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  579. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  580. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  581. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  582. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  583. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  584. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  585. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  586. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  587. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  588. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  590. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  591. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  592. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  594. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  595. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  596. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  598. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  599. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  600. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  601. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  603. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  605. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  606. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  607. package/contracts/components/Component.sol +0 -253
  608. package/contracts/components/IComponent.sol +0 -76
  609. package/contracts/components/IDistributionComponent.sol +0 -71
  610. package/contracts/components/IPoolComponent.sol +0 -113
  611. package/contracts/components/IProductComponent.sol +0 -40
  612. package/contracts/components/Pool.sol +0 -303
  613. package/contracts/components/Product.sol +0 -293
  614. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  615. package/contracts/instance/Cloneable.sol +0 -51
  616. package/contracts/instance/InstanceAccessManager.sol +0 -527
  617. package/contracts/instance/base/ComponentService.sol +0 -121
  618. package/contracts/instance/base/KeyValueStore.sol +0 -180
  619. package/contracts/instance/base/Lifecycle.sol +0 -109
  620. package/contracts/instance/module/ISetup.sol +0 -33
  621. package/contracts/instance/module/ITreasury.sol +0 -23
  622. package/contracts/instance/service/ApplicationService.sol +0 -350
  623. package/contracts/instance/service/BundleService.sol +0 -431
  624. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  625. package/contracts/instance/service/ClaimService.sol +0 -151
  626. package/contracts/instance/service/DistributionService.sol +0 -435
  627. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  628. package/contracts/instance/service/IBundleService.sol +0 -93
  629. package/contracts/instance/service/IClaimService.sol +0 -61
  630. package/contracts/instance/service/IPolicyService.sol +0 -72
  631. package/contracts/instance/service/IPoolService.sol +0 -99
  632. package/contracts/instance/service/IProductService.sol +0 -40
  633. package/contracts/instance/service/PolicyService.sol +0 -362
  634. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  635. package/contracts/instance/service/PoolService.sol +0 -303
  636. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  637. package/contracts/instance/service/ProductService.sol +0 -210
  638. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  639. package/contracts/registry/RegistryAccessManager.sol +0 -216
  640. package/contracts/registry/ReleaseManager.sol +0 -324
  641. package/contracts/shared/ContractDeployerLib.sol +0 -72
  642. package/contracts/test/TestFee.sol +0 -25
  643. package/contracts/test/TestRegisterable.sol +0 -18
  644. package/contracts/test/TestRoleId.sol +0 -14
  645. package/contracts/test/TestService.sol +0 -25
  646. package/contracts/test/TestToken.sol +0 -26
  647. package/contracts/test/TestVersion.sol +0 -44
  648. package/contracts/test/TestVersionable.sol +0 -17
  649. package/contracts/types/Amount.sol +0 -60
  650. package/contracts/types/ChainId.sol +0 -38
  651. package/contracts/types/NumberId.sol +0 -52
  652. package/contracts/types/ObjectType.sol +0 -157
  653. package/contracts/types/RoleId.sol +0 -97
  654. package/contracts/types/Seconds.sol +0 -54
  655. /package/contracts/{types → type}/DistributorType.sol +0 -0
  656. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,216 +0,0 @@
1
- // SPDX-License-Identifier: UNLICENSED
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
5
- import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
-
7
- import {RoleId, RoleIdLib,
8
- GIF_MANAGER_ROLE,
9
- GIF_ADMIN_ROLE,
10
- RELEASE_MANAGER_ROLE} from "../types/RoleId.sol";
11
-
12
- import {TokenRegistry} from "./TokenRegistry.sol";
13
- import {ReleaseManager} from "./ReleaseManager.sol";
14
-
15
- /*
16
- 4 types of roles:
17
- 1) RELEASE_MANAGER_ROLE
18
- - has only ReleaseManager as member
19
- - responsible for setting and granting of REGISTRAR roles
20
- 1) REGISTRAR roles
21
- - set and granted by RELEASE_MANAGER_ROLE
22
- - each has 1 unique member (regular service ver.X) (subject to change)
23
- - each set to 1 target (registry service ver.X) and 1 selector (function of registry service ver.X) (subject to change)
24
- 2) GIF_MANAGER_ROLE
25
- - can have arbitrary number of members
26
- - responsible for services registrations
27
- - responsible for token registration and activation
28
- 3) GIF_ADMIN_ROLE
29
- - admin of GIF_MANAGER_ROLE
30
- - MUST have 1 member at any time
31
- - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
32
- - responsible for creation and activation of releases
33
-
34
- */
35
-
36
- contract RegistryAccessManager is AccessManaged
37
- {
38
- error NotInitialized();
39
- error AlreadyInitialized();
40
-
41
- uint64 public constant UNIQUE_ROLE_ID_MIN = 1000000;
42
-
43
- AccessManager private immutable _accessManager;
44
- address private _releaseManager;
45
- address private _tokenRegistry;
46
-
47
- uint64 private _idNext; // role id
48
- bool private _isInitialized;
49
-
50
- modifier onlyOnce() {
51
- if(_isInitialized) {
52
- revert AlreadyInitialized();
53
- }
54
- _;
55
- _isInitialized = true;
56
- }
57
-
58
- modifier onlyInitialized() {
59
- if(!_isInitialized) {
60
- revert NotInitialized();
61
- }
62
- _;
63
- }
64
-
65
- constructor(address manager)
66
- AccessManaged(msg.sender)
67
- {
68
- _accessManager = new AccessManager(address(this));
69
- setAuthority(address(_accessManager));
70
-
71
- _idNext = UNIQUE_ROLE_ID_MIN;
72
-
73
- _configureAdminRoleInitial();
74
-
75
- address admin = msg.sender;
76
- _grantRole(GIF_ADMIN_ROLE(), admin, 0);
77
- _grantRole(GIF_MANAGER_ROLE(), manager, 0);
78
- }
79
-
80
- function initialize(address releaseManager, address tokenRegistry)
81
- external
82
- restricted // GIF_ADMIN_ROLE
83
- onlyOnce
84
- {
85
- require(
86
- ReleaseManager(releaseManager).authority() == address(_accessManager),
87
- "RegistryAccessManager: release manager authority is invalid");
88
- require(tokenRegistry > address(0), "RegistryAccessManager: token registry is 0");
89
- //require(tokenRegistry.authority() == address(_accessManager));
90
-
91
- _releaseManager = releaseManager;
92
- _tokenRegistry = tokenRegistry;
93
-
94
- _configureAdminRole();
95
- _configureManagerRole();
96
- _configureReleaseManagerRole();
97
-
98
- _grantRole(RELEASE_MANAGER_ROLE(), releaseManager, 0);
99
- }
100
-
101
- // set unique role for target, role forever have 1 member and never revoked
102
- function setAndGrantUniqueRole(
103
- address account,
104
- address target,
105
- bytes4[] memory selector
106
- )
107
- external
108
- restricted // RELEASE_MANAGER_ROLE
109
- onlyInitialized
110
- returns(RoleId)
111
- {
112
- // TODO questionable check...
113
- // target is not part of `runtime`
114
- //if(
115
- // target == address(this) ||
116
- // target == address(_accessManager) ||
117
- // target == _releaseManager ||
118
- // target == _tokenRegistry)
119
- //{ return TargetInvalid(); }
120
-
121
- RoleId roleId = _getNextRoleId();
122
-
123
- _setTargetFunctionRole(target, selector, roleId);
124
- _grantRole(roleId, account, 0);
125
- }
126
-
127
- /*function transferAdmin(address to)
128
- external
129
- restricted // only with GIF_ADMIN_ROLE or nft owner
130
- {
131
- _accessManager.revoke(GIF_ADMIN_ROLE, );
132
- _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
133
- }*/
134
-
135
- //--- view functions ----------------------------------------------------//
136
-
137
- function getAccessManager()
138
- external
139
- view
140
- returns (AccessManager)
141
- {
142
- return _accessManager;
143
- }
144
-
145
- //--- private functions -------------------------------------------------//
146
-
147
- function _configureAdminRoleInitial() private
148
- {
149
- bytes4[] memory functionSelector = new bytes4[](1);
150
-
151
- functionSelector[0] = RegistryAccessManager.initialize.selector;
152
- _setTargetFunctionRole(address(this), functionSelector, GIF_ADMIN_ROLE());
153
- }
154
-
155
- function _configureAdminRole() private
156
- {
157
- bytes4[] memory functionSelector = new bytes4[](1);
158
-
159
- // for RegistryServiceProxyManager
160
- // TODO upgrading with releaseManager.upgrade()->proxy.upgrade()???
161
- //functionSelector[0] = RegistryServiceManager.upgrade.selector;
162
- //_setTargetFunctionRole(address(this), functionSelector, GIF_ADMIN_ROLE());
163
-
164
- // for TokenRegistry
165
-
166
- // for ReleaseManager
167
- functionSelector[0] = ReleaseManager.createNextRelease.selector;
168
- _setTargetFunctionRole(_releaseManager, functionSelector, GIF_ADMIN_ROLE());
169
-
170
- functionSelector[0] = ReleaseManager.activateNextRelease.selector;
171
- _setTargetFunctionRole(_releaseManager, functionSelector, GIF_ADMIN_ROLE());
172
- }
173
-
174
- function _configureManagerRole() private
175
- {
176
- bytes4[] memory functionSelector = new bytes4[](1);
177
-
178
- // for TokenRegistry
179
- functionSelector[0] = TokenRegistry.setActive.selector;
180
- _setTargetFunctionRole(address(_tokenRegistry), functionSelector, GIF_MANAGER_ROLE());
181
-
182
- // for ReleaseManager
183
- functionSelector[0] = ReleaseManager.registerService.selector;
184
- _setTargetFunctionRole(_releaseManager, functionSelector, GIF_MANAGER_ROLE());
185
-
186
- functionSelector[0] = ReleaseManager.registerRegistryService.selector;
187
- _setTargetFunctionRole(_releaseManager, functionSelector, GIF_MANAGER_ROLE());
188
-
189
- // set admin
190
- _setRoleAdmin(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE());
191
- }
192
-
193
- function _configureReleaseManagerRole() private
194
- {
195
- bytes4[] memory functionSelector = new bytes4[](1);
196
-
197
- functionSelector[0] = RegistryAccessManager.setAndGrantUniqueRole.selector;
198
- _setTargetFunctionRole(address(this), functionSelector, RELEASE_MANAGER_ROLE());
199
- }
200
-
201
- function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) private {
202
- _accessManager.setTargetFunctionRole(target, selectors, roleId.toInt());
203
- }
204
-
205
- function _setRoleAdmin(RoleId roleId, RoleId adminRoleId) private {
206
- _accessManager.setRoleAdmin(roleId.toInt(), adminRoleId.toInt());
207
- }
208
-
209
- function _grantRole(RoleId roleId, address account, uint32 executionDelay) private {
210
- _accessManager.grantRole(roleId.toInt(), account, executionDelay);
211
- }
212
-
213
- function _getNextRoleId() private returns(RoleId roleId) {
214
- roleId = RoleIdLib.toRoleId(_idNext++);
215
- }
216
- }
@@ -1,324 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
-
6
- import {NftId} from "../types/NftId.sol";
7
- import {RoleId} from "../types/RoleId.sol";
8
- import {ObjectType, ObjectTypeLib, zeroObjectType, REGISTRY, SERVICE} from "../types/ObjectType.sol";
9
- import {Version, VersionLib, VersionPart, VersionPartLib} from "../types/Version.sol";
10
- import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
11
-
12
- import {IService} from "../shared/IService.sol";
13
-
14
- import {IRegistry} from "./IRegistry.sol";
15
- import {Registry} from "./Registry.sol";
16
- import {IRegistryService} from "./IRegistryService.sol";
17
- import {RegistryAccessManager} from "./RegistryAccessManager.sol";
18
-
19
-
20
- contract ReleaseManager is AccessManaged
21
- {
22
- using ObjectTypeLib for ObjectType;
23
-
24
- event LogReleaseCreation(VersionPart version);
25
- event LogReleaseActivation(VersionPart version);
26
-
27
- // createNextRelease
28
- error NotRegistryService();
29
- error UnexpectedServiceAuthority(address expected, address found);
30
-
31
- // registerService
32
- error NotService();
33
-
34
- // activateNextRelease
35
- error ReleaseNotCreated();
36
- error ReleaseRegistrationNotFinished();
37
-
38
- // _getAndVerifyContractInfo
39
- error UnexpectedRegisterableType(ObjectType expected, ObjectType found);
40
- error NotRegisterableOwner(address notOwner);
41
- error SelfRegistration();
42
- error RegisterableOwnerIsRegistered();
43
-
44
- // _verifyService
45
- error UnexpectedServiceVersion(VersionPart expected, VersionPart found);
46
- error UnexpectedServiceDomain(ObjectType expected, ObjectType found);
47
-
48
- // _verifyAndStoreConfig
49
- error ConfigMissing();
50
- error ConfigServiceDomainInvalid(uint configArrayIndex, ObjectType domain);
51
- error ConfigSelectorZero(uint configArrayIndex);
52
- error SelectorAlreadyExists(VersionPart releaseVersion, ObjectType serviceDomain);
53
-
54
-
55
- RegistryAccessManager private immutable _accessManager;
56
- IRegistry private immutable _registry;
57
-
58
- VersionPart immutable _initial;// first active major version
59
- VersionPart _latest;// latest active major version
60
- VersionPart _next;// major version to create and activate
61
-
62
- mapping(VersionPart majorVersion => IRegistry.ReleaseInfo info) _release;
63
-
64
- mapping(VersionPart majorVersion => mapping(ObjectType serviceDomain => bytes4[])) _selectors; // registry service function selector assigned to domain
65
-
66
- uint _awaitingRegistration; // "services left to register" counter
67
-
68
- mapping(address registryService => bool isActive) _active;
69
-
70
- mapping(VersionPart majorVersion => bool isValid) _valid; // TODO refactor to use _active only
71
-
72
- constructor(
73
- RegistryAccessManager accessManager,
74
- VersionPart initialVersion)
75
- AccessManaged(accessManager.authority())
76
- {
77
- require(initialVersion.toInt() > 0, "ReleaseManager: initial version is 0");
78
-
79
- _accessManager = accessManager;
80
-
81
- _initial = initialVersion;
82
- _next = initialVersion;
83
-
84
- _registry = new Registry();
85
- }
86
-
87
- /// @dev skips previous release if was not activated
88
- function createNextRelease()
89
- external
90
- restricted // GIF_ADMIN_ROLE
91
- {
92
- // allow to register new registry service for next version
93
- VersionPartLib.toVersionPart(_next.toInt() + 1);
94
- // disallow registration of regular services for next version while registry service is not registered
95
- _awaitingRegistration = 0;
96
-
97
- emit LogReleaseCreation(_next);
98
- }
99
-
100
- function activateNextRelease()
101
- external
102
- restricted // GIF_ADMIN_ROLE
103
- {
104
- VersionPart version = _next;
105
- address service = _registry.getServiceAddress(REGISTRY(), version);
106
-
107
- // release was created
108
- if(service == address(0)) {
109
- revert ReleaseNotCreated();
110
- }
111
-
112
- // release fully deployed
113
- if(_awaitingRegistration > 0) {
114
- revert ReleaseRegistrationNotFinished();
115
- }
116
-
117
- //setTargetClosed(service, false);
118
-
119
- _latest = version;
120
-
121
- _active[service] = true;
122
- _valid[version] = true;
123
-
124
- emit LogReleaseActivation(version);
125
- }
126
-
127
- // TODO deploy proxy and initialize with given implementation instead of using given proxy?
128
- // IMPORTANT: MUST never be possible to create with access/release manager, token registry
129
- // callable once per release after release creation, can not register regular services while registry service is not registered
130
- function registerRegistryService(IRegistryService service)
131
- external
132
- restricted // GIF_MANAGER_ROLE
133
- returns(NftId nftId)
134
- {
135
- if(!service.supportsInterface(type(IRegistryService).interfaceId)) {
136
- revert NotRegistryService();
137
- }
138
-
139
- // TODO unreliable! MUST guarantee the same authority -> how?
140
- address serviceAuthority = service.authority();
141
- if(serviceAuthority != authority()) {
142
- revert UnexpectedServiceAuthority(
143
- authority(),
144
- serviceAuthority);
145
- }
146
-
147
- IRegistry.ObjectInfo memory info = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
148
-
149
- VersionPart majorVersion = _next;
150
- ObjectType domain = REGISTRY();
151
- _verifyService(service, majorVersion, domain);
152
- _createRelease(service.getFunctionConfigs());
153
-
154
- nftId = _registry.registerService(info, majorVersion, domain);
155
-
156
- // external call
157
- service.linkToRegisteredNftId();
158
- }
159
-
160
- // TODO adding service to release -> synchronized with proxy upgrades or simple addServiceToRelease(service, version, selector)?
161
- // TODO removing service from release? -> set _active to false forever, but keep all other records?
162
- function registerService(IService service)
163
- external
164
- restricted // GIF_MANAGER_ROLE
165
- returns(NftId nftId)
166
- {
167
- if(!service.supportsInterface(type(IService).interfaceId)) {
168
- revert NotService();
169
- }
170
-
171
- IRegistry.ObjectInfo memory info = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
172
- VersionPart majorVersion = getNextVersion();
173
- ObjectType domain = _release[majorVersion].domains[_awaitingRegistration];// reversed registration order of services specified in RegistryService config
174
- _verifyService(service, majorVersion, domain);
175
-
176
- // setup and grant unique role if service does registrations
177
- bytes4[] memory selectors = _selectors[majorVersion][domain];
178
- address registryService = _registry.getServiceAddress(REGISTRY(), majorVersion);
179
- if(selectors.length > 0) {
180
- _accessManager.setAndGrantUniqueRole(
181
- address(service),
182
- registryService,
183
- selectors);
184
- }
185
-
186
- _awaitingRegistration--;
187
-
188
- nftId = _registry.registerService(info, majorVersion, domain);
189
-
190
- // external call
191
- service.linkToRegisteredNftId();
192
- }
193
-
194
- //--- view functions ----------------------------------------------------//
195
-
196
- function isActiveRegistryService(address service) external view returns(bool)
197
- {
198
- return _active[service];
199
- }
200
-
201
- function isValidRelease(VersionPart version) external view returns(bool)
202
- {
203
- return _valid[version];
204
- }
205
-
206
- function getRegistry() external view returns(address)
207
- {
208
- return (address(_registry));
209
- }
210
-
211
- function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory)
212
- {
213
- return _release[version];
214
- }
215
-
216
- function getNextVersion() public view returns(VersionPart)
217
- {
218
- return _next;
219
- }
220
-
221
- function getLatestVersion() external view returns(VersionPart) {
222
- return _latest;
223
- }
224
-
225
- function getInitialVersion() external view returns(VersionPart) {
226
- return _initial;
227
- }
228
-
229
- //--- private functions ----------------------------------------------------//
230
-
231
- function _getAndVerifyContractInfo(
232
- IService service,
233
- ObjectType expectedType,
234
- address expectedOwner // assume always valid, can not be 0
235
- )
236
- internal
237
- // view
238
- returns(
239
- IRegistry.ObjectInfo memory info
240
- )
241
- {
242
- info = service.getInitialInfo();
243
- info.objectAddress = address(service);
244
- info.isInterceptor = false; // service is never interceptor, at least now
245
-
246
- if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
247
- revert UnexpectedRegisterableType(expectedType, info.objectType);
248
- }
249
-
250
- address owner = info.initialOwner;
251
-
252
- if(owner != expectedOwner) { // registerable owner protection
253
- revert NotRegisterableOwner(expectedOwner);
254
- }
255
-
256
- if(owner == address(service)) {
257
- revert SelfRegistration();
258
- }
259
-
260
- if(_registry.isRegistered(owner)) {
261
- revert RegisterableOwnerIsRegistered();
262
- }
263
- }
264
-
265
- function _verifyService(
266
- IService service,
267
- VersionPart expectedVersion,
268
- ObjectType expectedDomain
269
- )
270
- internal
271
- view
272
- returns(ObjectType)
273
- {
274
- Version version = service.getVersion();
275
- VersionPart majorVersion = version.toMajorPart();
276
- if(majorVersion != expectedVersion) {
277
- revert UnexpectedServiceVersion(expectedVersion, majorVersion);
278
- }
279
-
280
- if(service.getDomain() != expectedDomain) {
281
- revert UnexpectedServiceDomain(expectedDomain, service.getDomain());
282
- }
283
-
284
- return expectedDomain;
285
- }
286
-
287
- // TODO check if registry supports types specified in the config array
288
- function _createRelease(IRegistryService.FunctionConfig[] memory config)
289
- internal
290
- {
291
- VersionPart version = getNextVersion();
292
-
293
- if(config.length == 0) {
294
- revert ConfigMissing();
295
- }
296
- // always in release
297
- _release[version].domains.push(REGISTRY());
298
- for(uint idx = 0; idx < config.length; idx++)
299
- {
300
- ObjectType domain = config[idx].serviceDomain;
301
- // not "registry service" / zero domain
302
- if(
303
- domain == REGISTRY() ||
304
- domain.eqz()
305
- ) { revert ConfigServiceDomainInvalid(idx, domain); }
306
-
307
- bytes4[] memory selectors = config[idx].selectors;
308
-
309
- // TODO can be zero -> e.g. duplicate domain, first with zero selector, second with non zero selector -> need to check _release[version].domains.contains(domain) instead
310
- // no overwrite
311
- if(_selectors[version][domain].length > 0) {
312
- revert SelectorAlreadyExists(version, domain);
313
- }
314
-
315
- _selectors[version][domain] = selectors;
316
- _release[version].domains.push(domain);
317
- }
318
- // TODO set when activated?
319
- _release[version].createdAt = TimestampLib.blockTimestamp();
320
- //_release[version].updatedAt = TimestampLib.blockTimestamp();
321
-
322
- _awaitingRegistration = config.length;
323
- }
324
- }
@@ -1,72 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- library ContractDeployerLib {
5
-
6
- event LogContractDeployed(address contractAddress);
7
-
8
- error ErrorCreationCodeHashMismatch(bytes32 expectedHash, bytes32 actualHash);
9
-
10
- /// @dev deploys a new contract using the provided creation code
11
- function deploy(
12
- bytes memory creationCode,
13
- bytes32 expectedCreationCodeHash
14
- )
15
- public
16
- returns (address contractAdress)
17
- {
18
- // check against expected hash, if provided
19
- if (expectedCreationCodeHash != bytes32(0)) {
20
- bytes32 creationCodeHash = getHash(creationCode);
21
- if (creationCodeHash != expectedCreationCodeHash) {
22
- revert ErrorCreationCodeHashMismatch(expectedCreationCodeHash, creationCodeHash);
23
- }
24
- }
25
-
26
- // solhint-disable no-inline-assembly
27
- assembly {
28
- contractAdress := create(0, add(creationCode, 0x20), mload(creationCode))
29
-
30
- if iszero(extcodesize(contractAdress)) {
31
- revert(0, 0)
32
- }
33
- }
34
- // solhint enable
35
-
36
- emit LogContractDeployed(contractAdress);
37
- }
38
-
39
- /// @dev gets the creation code for the new contract
40
- // for terminology see eg https://www.rareskills.io/post/ethereum-contract-creation-code
41
- function getCreationCode(
42
- bytes memory byteCodeWithInitCode, // what you get with type(<Contract>).creationCode
43
- bytes memory encodedConstructorArguments // what you get with
44
- )
45
- public
46
- pure
47
- returns (bytes memory creationCode)
48
- {
49
- return abi.encodePacked(byteCodeWithInitCode, encodedConstructorArguments);
50
- }
51
-
52
-
53
- function matchesWithHash(
54
- bytes memory creationCode,
55
- bytes32 expectedHash
56
- )
57
- public
58
- pure
59
- returns (bool isMatching)
60
- {
61
- return getHash(creationCode) == expectedHash;
62
- }
63
-
64
-
65
- function getHash(bytes memory creationCode)
66
- public
67
- pure
68
- returns (bytes32 hash)
69
- {
70
- return keccak256(creationCode);
71
- }
72
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {UFixed, UFixedLib} from "../types/UFixed.sol";
5
- import {Fee, FeeLib} from "../types/Fee.sol";
6
-
7
- contract TestFee {
8
-
9
- function createFee(
10
- uint256 fractionalValue,
11
- int8 exponent,
12
- uint256 fixedValue
13
- )
14
- external
15
- pure
16
- returns(Fee memory fee)
17
- {
18
- return FeeLib.toFee(UFixedLib.toUFixed(fractionalValue, exponent), fixedValue);
19
- }
20
-
21
- function getZeroFee() external pure returns(Fee memory fee) {
22
- return FeeLib.zeroFee();
23
- }
24
-
25
- }
@@ -1,18 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../contracts/types/NftId.sol";
5
- import {ObjectType, TOKEN} from "../../contracts/types/ObjectType.sol";
6
- import {IRegistry} from "../../contracts/registry/IRegistry.sol";
7
- import {Registerable} from "../../contracts/shared/Registerable.sol";
8
-
9
- contract TestRegisterable is Registerable {
10
-
11
- constructor(address registry, NftId registryNftId, ObjectType objectType, bool isInterceptor, address initialOwner)
12
- //Registerable(registry, registryNftId)
13
- // solhint-disable-next-line no-empty-blocks
14
- {
15
- bytes memory data = "";
16
- initializeRegisterable(registry, registryNftId, objectType, isInterceptor, initialOwner, data);
17
- }
18
- }
@@ -1,14 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {RoleId, RoleIdLib, PRODUCT_OWNER_ROLE_NAME, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE_NAME, POOL_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
5
-
6
- contract TestRoleId {
7
- function getRole(uint256 roleNum) external pure returns (RoleId) { return RoleIdLib.toRoleId(roleNum); }
8
-
9
- function getProductOwnerRoleName() external pure returns (string memory) { return PRODUCT_OWNER_ROLE_NAME(); }
10
- function getProductOwnerRole() external pure returns (RoleId) { return PRODUCT_OWNER_ROLE(); }
11
-
12
- function getPoolOwnerRoleName() external pure returns (string memory) { return POOL_OWNER_ROLE_NAME(); }
13
- function getPoolOwnerRole() external pure returns (RoleId) { return POOL_OWNER_ROLE(); }
14
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ObjectType, PRODUCT} from "../../contracts/types/ObjectType.sol";
5
- import {NftId} from "../../contracts/types/NftId.sol";
6
- import {Version, VersionLib} from "../../contracts/types/Version.sol";
7
- import {Service} from "../../contracts/shared/Service.sol";
8
-
9
- import {IVersionable} from "../../contracts/shared/IVersionable.sol";
10
- import {Versionable} from "../../contracts/shared/Versionable.sol";
11
-
12
- contract TestService is Service {
13
-
14
- string public constant NAME = "TestService";
15
-
16
- constructor(address registry, NftId registryNftId, address initialOwner)
17
- // solhint-disable-next-line no-empty-blocks
18
- {
19
- initializeService(registry, address(0), initialOwner);
20
- }
21
-
22
- function getDomain() public pure override returns(ObjectType) {
23
- return PRODUCT();
24
- }
25
- }