@etherisc/gif-next 0.0.2-bad4d33-850 → 0.0.2-bafc958-412

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 (704) hide show
  1. package/README.md +59 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -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 +1032 -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 +1400 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +787 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +343 -286
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1463 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1660 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +410 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +237 -1565
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +369 -198
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +361 -2605
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +876 -407
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +498 -489
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +319 -109
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  89. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  92. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  93. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  94. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  96. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  98. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  100. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  101. package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +329 -277
  102. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  104. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  106. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
  108. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
  110. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  111. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
  112. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  114. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1362 -0
  116. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +771 -0
  118. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  119. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +457 -265
  120. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  121. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +348 -353
  122. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1198 -0
  124. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  125. package/artifacts/contracts/pool/Pool.sol/Pool.json +1034 -0
  126. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1469 -0
  128. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +695 -0
  130. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +732 -0
  132. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +667 -0
  134. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  135. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
  136. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  138. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  139. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1325 -0
  140. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +775 -0
  142. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  143. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +216 -230
  144. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  145. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  146. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  147. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +327 -308
  148. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -215
  150. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  151. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +363 -364
  152. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IRiskService.sol/IRiskService.json} +126 -167
  154. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  155. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1104 -0
  156. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +715 -0
  158. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PricingService.sol/PricingService.json +860 -0
  160. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +715 -0
  162. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  163. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +551 -245
  164. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  165. package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
  166. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
  168. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  169. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  170. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +408 -22
  172. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +226 -267
  174. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  175. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  176. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  177. package/artifacts/contracts/registry/Registry.sol/Registry.json +808 -39
  178. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  179. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  180. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  181. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +417 -277
  182. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +302 -96
  184. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  185. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  186. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  188. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  190. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +349 -82
  192. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  193. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +247 -218
  194. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1568 -0
  196. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +753 -0
  198. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  199. package/artifacts/contracts/{components/IComponent.sol/IComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +141 -169
  200. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  201. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/IComponent.sol/IComponent.json} +244 -242
  202. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  203. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  204. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  205. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +259 -207
  206. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  207. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  208. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  210. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  211. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  212. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  213. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +165 -0
  214. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -30
  216. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  217. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  218. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IService.sol/IService.json +84 -154
  220. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  221. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  222. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  223. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  224. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  226. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  227. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  228. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  229. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  230. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  231. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  232. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +58 -36
  234. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  235. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +188 -0
  236. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +43 -61
  238. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  239. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  240. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Service.sol/Service.json +97 -178
  242. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  243. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  244. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  245. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  246. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  247. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  248. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  249. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  250. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  252. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  253. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  254. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  256. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +714 -0
  258. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  260. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1231 -0
  262. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +667 -0
  264. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  266. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  267. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  268. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  269. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  270. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  272. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  274. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  276. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  278. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  280. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  282. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  284. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  285. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  286. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  288. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  290. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  292. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  294. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  296. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  298. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  300. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  302. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  304. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  306. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  308. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  310. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  312. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  314. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  316. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  318. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  319. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  320. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  321. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
  322. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  324. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  326. package/contracts/authorization/AccessAdmin.sol +589 -0
  327. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  328. package/contracts/authorization/Authorization.sol +217 -0
  329. package/contracts/authorization/IAccess.sol +48 -0
  330. package/contracts/authorization/IAccessAdmin.sol +136 -0
  331. package/contracts/authorization/IAuthorization.sol +54 -0
  332. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  333. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  334. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  335. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  336. package/contracts/distribution/BasicDistribution.sol +138 -0
  337. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  338. package/contracts/distribution/Distribution.sol +295 -0
  339. package/contracts/distribution/DistributionService.sol +336 -0
  340. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  341. package/contracts/distribution/IDistributionComponent.sol +52 -0
  342. package/contracts/distribution/IDistributionService.sol +101 -0
  343. package/contracts/examples/fire/FirePool.sol +76 -0
  344. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  345. package/contracts/examples/fire/FireProduct.sol +316 -0
  346. package/contracts/examples/fire/FireProductAuthorization.sol +16 -0
  347. package/contracts/examples/fire/FireUSD.sol +26 -0
  348. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  349. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  350. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  351. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  352. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
  353. package/contracts/instance/IInstance.sol +43 -52
  354. package/contracts/instance/IInstanceService.sol +72 -21
  355. package/contracts/instance/Instance.sol +161 -201
  356. package/contracts/instance/InstanceAdmin.sol +285 -0
  357. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  358. package/contracts/instance/InstanceReader.sol +202 -65
  359. package/contracts/instance/InstanceService.sol +350 -318
  360. package/contracts/instance/InstanceServiceManager.sol +13 -27
  361. package/contracts/instance/InstanceStore.sol +287 -0
  362. package/contracts/instance/base/BalanceStore.sol +123 -0
  363. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  364. package/contracts/instance/base/ObjectCounter.sol +21 -0
  365. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  366. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
  367. package/contracts/instance/module/IAccess.sol +19 -21
  368. package/contracts/instance/module/IBundle.sol +8 -8
  369. package/contracts/instance/module/IComponents.sol +46 -0
  370. package/contracts/instance/module/IDistribution.sol +6 -4
  371. package/contracts/instance/module/IPolicy.sol +58 -19
  372. package/contracts/instance/module/IRisk.sol +1 -1
  373. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  374. package/contracts/oracle/BasicOracle.sol +48 -0
  375. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  376. package/contracts/oracle/IOracle.sol +36 -0
  377. package/contracts/oracle/IOracleComponent.sol +33 -0
  378. package/contracts/oracle/IOracleService.sol +65 -0
  379. package/contracts/oracle/Oracle.sol +167 -0
  380. package/contracts/oracle/OracleService.sol +279 -0
  381. package/contracts/oracle/OracleServiceManager.sol +39 -0
  382. package/contracts/pool/BasicPool.sol +166 -0
  383. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  384. package/contracts/pool/BundleService.sol +438 -0
  385. package/contracts/pool/BundleServiceManager.sol +39 -0
  386. package/contracts/pool/IBundleService.sol +134 -0
  387. package/contracts/pool/IPoolComponent.sol +58 -0
  388. package/contracts/pool/IPoolService.sol +160 -0
  389. package/contracts/pool/Pool.sol +326 -0
  390. package/contracts/pool/PoolService.sol +509 -0
  391. package/contracts/pool/PoolServiceManager.sol +39 -0
  392. package/contracts/product/ApplicationService.sol +248 -0
  393. package/contracts/product/ApplicationServiceManager.sol +38 -0
  394. package/contracts/product/BasicProduct.sol +53 -0
  395. package/contracts/product/BasicProductAuthorization.sol +43 -0
  396. package/contracts/product/ClaimService.sol +487 -0
  397. package/contracts/product/ClaimServiceManager.sol +38 -0
  398. package/contracts/product/IApplicationService.sol +63 -0
  399. package/contracts/product/IClaimService.sol +122 -0
  400. package/contracts/product/IPolicyService.sol +73 -0
  401. package/contracts/product/IPricingService.sol +39 -0
  402. package/contracts/product/IProductComponent.sol +39 -0
  403. package/contracts/product/IRiskService.sol +33 -0
  404. package/contracts/product/PolicyService.sol +573 -0
  405. package/contracts/product/PolicyServiceManager.sol +39 -0
  406. package/contracts/product/PricingService.sol +301 -0
  407. package/contracts/product/PricingServiceManager.sol +39 -0
  408. package/contracts/product/Product.sol +425 -0
  409. package/contracts/product/RiskService.sol +97 -0
  410. package/contracts/product/RiskServiceManager.sol +39 -0
  411. package/contracts/registry/ChainNft.sol +80 -32
  412. package/contracts/registry/IRegistry.sol +95 -25
  413. package/contracts/registry/IRegistryService.sol +47 -43
  414. package/contracts/registry/ITransferInterceptor.sol +1 -0
  415. package/contracts/registry/Registry.sol +452 -202
  416. package/contracts/registry/RegistryAdmin.sol +464 -0
  417. package/contracts/registry/RegistryService.sol +105 -115
  418. package/contracts/registry/RegistryServiceManager.sol +24 -33
  419. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  420. package/contracts/registry/ReleaseRegistry.sol +491 -0
  421. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  422. package/contracts/registry/TokenRegistry.sol +263 -60
  423. package/contracts/shared/Component.sol +268 -0
  424. package/contracts/shared/ComponentService.sol +641 -0
  425. package/contracts/shared/ComponentServiceManager.sol +35 -0
  426. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  427. package/contracts/shared/IComponent.sol +70 -0
  428. package/contracts/shared/IComponentService.sol +108 -0
  429. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  430. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  431. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  432. package/contracts/shared/INftOwnable.sol +13 -12
  433. package/contracts/shared/IPolicyHolder.sol +36 -0
  434. package/contracts/shared/IRegisterable.sol +3 -3
  435. package/contracts/shared/IRegistryLinked.sol +11 -0
  436. package/contracts/shared/IService.sol +15 -6
  437. package/contracts/shared/InitializableCustom.sol +177 -0
  438. package/contracts/shared/InitializableERC165.sol +27 -0
  439. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  440. package/contracts/shared/KeyValueStore.sol +131 -0
  441. package/contracts/shared/Lifecycle.sol +77 -0
  442. package/contracts/shared/NftIdSet.sol +65 -0
  443. package/contracts/shared/NftOwnable.sol +59 -91
  444. package/contracts/shared/PolicyHolder.sol +56 -0
  445. package/contracts/shared/Registerable.sol +16 -27
  446. package/contracts/shared/RegistryLinked.sol +44 -0
  447. package/contracts/shared/Service.sol +53 -31
  448. package/contracts/shared/TokenHandler.sol +122 -10
  449. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  450. package/contracts/staking/IStaking.sol +168 -0
  451. package/contracts/staking/IStakingService.sol +160 -0
  452. package/contracts/staking/StakeManagerLib.sol +224 -0
  453. package/contracts/staking/Staking.sol +498 -0
  454. package/contracts/staking/StakingLifecycle.sol +23 -0
  455. package/contracts/staking/StakingManager.sol +50 -0
  456. package/contracts/staking/StakingReader.sol +183 -0
  457. package/contracts/staking/StakingService.sol +407 -0
  458. package/contracts/staking/StakingServiceManager.sol +44 -0
  459. package/contracts/staking/StakingStore.sol +605 -0
  460. package/contracts/staking/TargetManagerLib.sol +211 -0
  461. package/contracts/{types → type}/AddressSet.sol +1 -1
  462. package/contracts/type/Amount.sol +135 -0
  463. package/contracts/{types → type}/Blocknumber.sol +27 -3
  464. package/contracts/type/ClaimId.sol +75 -0
  465. package/contracts/{types → type}/DistributorType.sol +2 -2
  466. package/contracts/{types → type}/Fee.sol +33 -23
  467. package/contracts/{types → type}/NftId.sol +21 -15
  468. package/contracts/{types → type}/NftIdSet.sol +2 -2
  469. package/contracts/type/ObjectType.sol +275 -0
  470. package/contracts/type/PayoutId.sol +82 -0
  471. package/contracts/{types → type}/Referral.sol +6 -1
  472. package/contracts/type/RequestId.sol +75 -0
  473. package/contracts/{types → type}/RiskId.sol +16 -2
  474. package/contracts/type/RoleId.sol +174 -0
  475. package/contracts/type/Seconds.sol +101 -0
  476. package/contracts/type/Selector.sol +102 -0
  477. package/contracts/{types → type}/StateId.sol +35 -4
  478. package/contracts/type/String.sol +53 -0
  479. package/contracts/{types → type}/Timestamp.sol +34 -15
  480. package/contracts/{types → type}/UFixed.sol +35 -9
  481. package/contracts/{types → type}/Version.sol +5 -2
  482. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  483. package/contracts/upgradeability/ProxyManager.sol +198 -0
  484. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  485. package/contracts/upgradeability/Versionable.sol +59 -0
  486. package/package.json +10 -7
  487. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  488. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  489. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  490. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  491. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  492. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  493. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  494. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  497. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  499. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  501. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  503. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  505. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  507. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  509. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  511. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  513. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  515. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  518. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  520. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  522. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  525. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  527. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  529. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  531. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  532. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  533. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  534. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  535. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  536. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  537. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  538. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  539. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  540. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  544. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  545. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  547. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
  551. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
  553. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
  555. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
  557. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
  564. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
  566. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
  568. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
  570. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
  572. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
  574. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  575. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  576. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  577. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  578. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  579. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  580. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  581. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  582. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  583. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  584. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  585. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -362
  586. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  587. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  588. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  589. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  590. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  591. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  592. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  593. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
  594. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  595. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  596. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  597. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
  598. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  599. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  600. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  602. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  604. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  605. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  606. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  607. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  608. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  609. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  610. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  611. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  612. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  613. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  614. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  615. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  616. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  617. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  618. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  620. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  621. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  622. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  624. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  626. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  628. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  630. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  632. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  635. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  637. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  639. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  640. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  641. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  643. package/contracts/components/Component.sol +0 -216
  644. package/contracts/components/Distribution.sol +0 -153
  645. package/contracts/components/IComponent.sol +0 -43
  646. package/contracts/components/IDistributionComponent.sol +0 -47
  647. package/contracts/components/IPoolComponent.sol +0 -51
  648. package/contracts/components/IProductComponent.sol +0 -39
  649. package/contracts/components/Pool.sol +0 -208
  650. package/contracts/components/Product.sol +0 -266
  651. package/contracts/experiment/cloning/Cloner.sol +0 -47
  652. package/contracts/experiment/errors/Require.sol +0 -38
  653. package/contracts/experiment/errors/Revert.sol +0 -44
  654. package/contracts/experiment/inheritance/A.sol +0 -53
  655. package/contracts/experiment/inheritance/B.sol +0 -28
  656. package/contracts/experiment/inheritance/C.sol +0 -34
  657. package/contracts/experiment/inheritance/IA.sol +0 -13
  658. package/contracts/experiment/inheritance/IB.sol +0 -10
  659. package/contracts/experiment/inheritance/IC.sol +0 -12
  660. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  661. package/contracts/experiment/statemachine/ISM.sol +0 -25
  662. package/contracts/experiment/statemachine/SM.sol +0 -57
  663. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  664. package/contracts/experiment/types/TypeA.sol +0 -47
  665. package/contracts/experiment/types/TypeB.sol +0 -29
  666. package/contracts/instance/InstanceAccessManager.sol +0 -298
  667. package/contracts/instance/base/ComponentService.sol +0 -134
  668. package/contracts/instance/base/KeyValueStore.sol +0 -172
  669. package/contracts/instance/base/Lifecycle.sol +0 -100
  670. package/contracts/instance/module/ISetup.sol +0 -46
  671. package/contracts/instance/module/ITreasury.sol +0 -23
  672. package/contracts/instance/service/BundleService.sol +0 -293
  673. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  674. package/contracts/instance/service/DistributionService.sol +0 -106
  675. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  676. package/contracts/instance/service/IBundleService.sol +0 -44
  677. package/contracts/instance/service/IDistributionService.sol +0 -12
  678. package/contracts/instance/service/IPolicyService.sol +0 -94
  679. package/contracts/instance/service/IPoolService.sol +0 -20
  680. package/contracts/instance/service/IProductService.sol +0 -40
  681. package/contracts/instance/service/PolicyService.sol +0 -538
  682. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  683. package/contracts/instance/service/PoolService.sol +0 -110
  684. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  685. package/contracts/instance/service/ProductService.sol +0 -233
  686. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  687. package/contracts/registry/RegistryAccessManager.sol +0 -216
  688. package/contracts/registry/ReleaseManager.sol +0 -332
  689. package/contracts/shared/ContractDeployerLib.sol +0 -72
  690. package/contracts/shared/ERC165.sol +0 -25
  691. package/contracts/shared/ProxyManager.sol +0 -94
  692. package/contracts/shared/Versionable.sol +0 -147
  693. package/contracts/test/TestFee.sol +0 -25
  694. package/contracts/test/TestRegisterable.sol +0 -18
  695. package/contracts/test/TestRoleId.sol +0 -14
  696. package/contracts/test/TestService.sol +0 -25
  697. package/contracts/test/TestVersion.sol +0 -44
  698. package/contracts/test/TestVersionable.sol +0 -17
  699. package/contracts/test/Usdc.sol +0 -26
  700. package/contracts/types/ChainId.sol +0 -38
  701. package/contracts/types/NumberId.sol +0 -52
  702. package/contracts/types/ObjectType.sol +0 -152
  703. package/contracts/types/RoleId.sol +0 -90
  704. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,332 +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 {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
- // _verifyServiceInfo
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 version
59
- VersionPart _latest;// latest active version
60
- VersionPart _next;// version to create and activate
61
-
62
- mapping(VersionPart version => IRegistry.ReleaseInfo info) _release;
63
-
64
- mapping(VersionPart version => mapping(ObjectType serviceDomain => bytes4)) _selector; // 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 version => 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 version = _next;
150
- ObjectType domain = REGISTRY();
151
- _verifyServiceInfo(info, version, domain);
152
-
153
- // data: config bytes
154
- _createRelease(service.getFunctionConfigs());
155
-
156
- //setTargetClosed(service, true);
157
-
158
- nftId = _registry.registerService(info, version, domain);
159
-
160
- // external call
161
- service.linkToRegisteredNftId();
162
- }
163
-
164
- // TODO adding service to release -> synchronized with proxy upgrades or simple addServiceToRelease(service, version, selector)?
165
- // TODO removing service from release? -> set _active to false forever, but keep all other records?
166
- function registerService(IService service)
167
- external
168
- restricted // GIF_MANAGER_ROLE
169
- returns(NftId nftId)
170
- {
171
- if(!service.supportsInterface(type(IService).interfaceId)) {
172
- revert NotService();
173
- }
174
-
175
- IRegistry.ObjectInfo memory info = _getAndVerifyContractInfo(service, SERVICE(), msg.sender);
176
- VersionPart version = getNextVersion();
177
- ObjectType domain = _release[version].domains[_awaitingRegistration];// reversed registration order of services specified in RegistryService config
178
- _verifyServiceInfo(info, version, domain);
179
-
180
- // setup and grant unique role if service does registrations
181
- bytes4[] memory selector = new bytes4[](1);
182
- selector[0] = _selector[version][domain];
183
- address registryService = _registry.getServiceAddress(REGISTRY(), version);
184
- if(selector[0] != 0) {
185
- _accessManager.setAndGrantUniqueRole(
186
- address(service),
187
- registryService,
188
- selector);
189
- }
190
-
191
- _awaitingRegistration--;
192
-
193
- nftId = _registry.registerService(info, version, domain);
194
-
195
- // external call
196
- service.linkToRegisteredNftId();
197
- }
198
-
199
- //--- view functions ----------------------------------------------------//
200
-
201
- function isActiveRegistryService(address service) external view returns(bool)
202
- {
203
- return _active[service];
204
- }
205
-
206
- function isValidRelease(VersionPart version) external view returns(bool)
207
- {
208
- return _valid[version];
209
- }
210
-
211
- function getRegistry() external view returns(address)
212
- {
213
- return (address(_registry));
214
- }
215
-
216
- function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory)
217
- {
218
- return _release[version];
219
- }
220
-
221
- function getNextVersion() public view returns(VersionPart)
222
- {
223
- return _next;
224
- }
225
-
226
- function getLatestVersion() external view returns(VersionPart) {
227
- return _latest;
228
- }
229
-
230
- function getInitialVersion() external view returns(VersionPart) {
231
- return _initial;
232
- }
233
-
234
- //--- private functions ----------------------------------------------------//
235
-
236
- function _getAndVerifyContractInfo(
237
- IService service,
238
- ObjectType expectedType,
239
- address expectedOwner // assume always valid, can not be 0
240
- )
241
- internal
242
- // view
243
- returns(
244
- IRegistry.ObjectInfo memory info
245
- )
246
- {
247
- info = service.getInitialInfo();
248
- info.objectAddress = address(service);
249
- info.isInterceptor = false; // service is never interceptor, at least now
250
-
251
- if(info.objectType != expectedType) {// type is checked in registry anyway...but service logic may depend on expected value
252
- revert UnexpectedRegisterableType(expectedType, info.objectType);
253
- }
254
-
255
- address owner = info.initialOwner;
256
-
257
- if(owner != expectedOwner) { // registerable owner protection
258
- revert NotRegisterableOwner(expectedOwner);
259
- }
260
-
261
- if(owner == address(service)) {
262
- revert SelfRegistration();
263
- }
264
-
265
- if(_registry.isRegistered(owner)) {
266
- revert RegisterableOwnerIsRegistered();
267
- }
268
- }
269
-
270
- function _verifyServiceInfo(
271
- IRegistry.ObjectInfo memory info,
272
- VersionPart expectedVersion,
273
- ObjectType expectedDomain
274
- )
275
- internal
276
- view
277
- returns(ObjectType)
278
- {
279
- (
280
- ObjectType domain,
281
- VersionPart version
282
- ) = abi.decode(info.data, (ObjectType, VersionPart));
283
-
284
- if(version != expectedVersion) {
285
- revert UnexpectedServiceVersion(expectedVersion, version);
286
- }
287
-
288
- if(domain != expectedDomain) {
289
- revert UnexpectedServiceDomain(expectedDomain, domain);
290
- }
291
-
292
- return domain;
293
- }
294
-
295
- // TODO check if registry supports types specified in the config array
296
- function _createRelease(IRegistryService.FunctionConfig[] memory config)
297
- internal
298
- {
299
- VersionPart version = getNextVersion();
300
-
301
- if(config.length == 0) {
302
- revert ConfigMissing();
303
- }
304
- // always in release
305
- _release[version].domains.push(REGISTRY());
306
- for(uint idx = 0; idx < config.length; idx++)
307
- {
308
- ObjectType domain = config[idx].serviceDomain;
309
- bytes4 selector = config[idx].selector;
310
-
311
- // not "registry service" / zero domain
312
- if(
313
- domain == REGISTRY() ||
314
- domain.eqz()
315
- ) { revert ConfigServiceDomainInvalid(idx, domain); }
316
-
317
- // 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
318
- // no overwrite
319
- if(_selector[version][domain] > 0) {
320
- revert SelectorAlreadyExists(version, domain);
321
- }
322
-
323
- _selector[version][domain] = selector;
324
- _release[version].domains.push(domain);
325
- }
326
- // TODO set when activated?
327
- _release[version].createdAt = TimestampLib.blockTimestamp();
328
- //_release[version].updatedAt = TimestampLib.blockTimestamp();
329
-
330
- _awaitingRegistration = config.length;
331
- }
332
- }
@@ -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 {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
-
6
- contract ERC165 is IERC165 {
7
- mapping(bytes4 => bool) private _isSupported;
8
-
9
- constructor() {
10
- _initializeERC165();
11
- }
12
-
13
- function supportsInterface(bytes4 interfaceId) external view override returns (bool) {
14
- return _isSupported[interfaceId];
15
- }
16
-
17
- // @dev register support for ERC165 itself
18
- function _initializeERC165() internal {
19
- _isSupported[type(IERC165).interfaceId] = true;
20
- }
21
-
22
- function _registerInterface(bytes4 interfaceId) internal {
23
- _isSupported[interfaceId] = true;
24
- }
25
- }
@@ -1,94 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
5
- import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
6
- import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
7
-
8
- import {IVersionable} from "./IVersionable.sol";
9
- import {NftOwnable} from "./NftOwnable.sol";
10
- import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
11
-
12
- /// @dev manages proxy deployments for upgradable contracs of type IVersionable
13
- contract ProxyManager is
14
- NftOwnable
15
- {
16
-
17
- event LogProxyDeployed(address indexed proxy, address initialImplementation);
18
- event LogProxyDeployedWithSalt(address indexed proxy, address initialImplementation);
19
- event LogProxyUpgraded(address indexed proxy, address upgradedImplementation);
20
-
21
- error ErrorAlreadyDeployed();
22
- error ErrorAlreadyDeployedWithSalt();
23
- error ErrorNotYetDeployed();
24
-
25
- UpgradableProxyWithAdmin internal _proxy;
26
- bool internal _isDeployed;
27
-
28
- /// @dev only used to capture proxy owner
29
- constructor()
30
- NftOwnable()
31
- { }
32
-
33
- /// @dev deploy initial contract
34
- function deploy(address initialImplementation, bytes memory initializationData)
35
- public
36
- virtual
37
- onlyOwner()
38
- returns (IVersionable versionable)
39
- {
40
- if (_isDeployed) { revert ErrorAlreadyDeployed(); }
41
- _isDeployed = true;
42
-
43
- address currentProxyOwner = getOwner(); // used by implementation
44
- address initialProxyAdminOwner = address(this); // used by proxy
45
- bytes memory data = getDeployData(initialImplementation, currentProxyOwner, initializationData);
46
-
47
- _proxy = new UpgradableProxyWithAdmin(
48
- initialImplementation,
49
- initialProxyAdminOwner,
50
- data
51
- );
52
-
53
- versionable = IVersionable(address(_proxy));
54
-
55
- emit LogProxyDeployed(address(_proxy), initialImplementation);
56
- }
57
-
58
- /// @dev upgrade existing contract
59
- function upgrade(address newImplementation, bytes memory upgradeData)
60
- public
61
- virtual
62
- onlyOwner()
63
- returns (IVersionable versionable)
64
- {
65
- if (!_isDeployed) { revert ErrorNotYetDeployed(); }
66
-
67
- address currentProxyOwner = getOwner();
68
- ProxyAdmin proxyAdmin = getProxy().getProxyAdmin();
69
- ITransparentUpgradeableProxy proxy = ITransparentUpgradeableProxy(address(_proxy));
70
- bytes memory data = getUpgradeData(newImplementation, currentProxyOwner, upgradeData);
71
-
72
- proxyAdmin.upgradeAndCall(
73
- proxy,
74
- newImplementation,
75
- data);
76
-
77
- versionable = IVersionable(address(_proxy));
78
-
79
- emit LogProxyUpgraded(address(_proxy), newImplementation);
80
-
81
- }
82
-
83
- function getDeployData(address implementation, address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
84
- return abi.encodeWithSelector(IVersionable.initialize.selector, implementation, proxyOwner, deployData);
85
- }
86
-
87
- function getUpgradeData(address implementation, address proxyOwner, bytes memory upgradeData) public pure returns (bytes memory data) {
88
- return abi.encodeWithSelector(IVersionable.upgrade.selector, implementation, proxyOwner, upgradeData);
89
- }
90
-
91
- function getProxy() public returns (UpgradableProxyWithAdmin) {
92
- return _proxy;
93
- }
94
- }
@@ -1,147 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
-
6
- import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
7
- import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
8
- import {Version, VersionPart, VersionLib} from "../types/Version.sol";
9
-
10
- import {IVersionable} from "./IVersionable.sol";
11
-
12
-
13
-
14
- abstract contract Versionable is
15
- Initializable,
16
- IVersionable
17
- {
18
- // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Versionable.sol")) - 1)) & ~bytes32(uint256(0xff))
19
- bytes32 private constant VERSIONABLE_LOCATION_V1 = 0x4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900;
20
-
21
-
22
- /// @custom:storage-location erc7201:gif-next.contracts.shared.Versionable.sol
23
- struct VersionableStorage {
24
- mapping(Version version => VersionInfo info) _versionHistory;
25
- Version [] _versions;
26
- Version _v1;
27
- }
28
-
29
-
30
- constructor() {
31
- _disableInitializers();
32
- }
33
- // TODO write test where new version of private _updateVersionHistory is added and used...
34
- function initialize(
35
- address implementation,
36
- address activatedBy,
37
- bytes memory data
38
- )
39
- public
40
- initializer
41
- {
42
- _updateVersionHistory(implementation, activatedBy);
43
- _initialize(activatedBy, data);
44
- }
45
-
46
- // TODO activatedBy MUST ALWAYS be an owner?
47
- function upgrade(
48
- address implementation,
49
- address activatedBy,
50
- bytes memory data
51
- )
52
- external
53
- reinitializer(VersionLib.toUint64(getVersion()))
54
- {
55
- _updateVersionHistory(implementation, activatedBy);
56
- _upgrade(data);
57
- }
58
-
59
- function isInitialized(Version _version) public override view returns(bool) {
60
- return _getVersionableStorage()._versionHistory[_version].activatedIn.toInt() > 0;
61
- }
62
-
63
- function getVersion() public pure virtual returns(Version);
64
-
65
- function getVersionCount() public view override returns(uint256) {
66
- return _getVersionableStorage()._versions.length;
67
- }
68
-
69
- function getVersion(uint256 idx) public view override returns(Version) {
70
- return _getVersionableStorage()._versions[idx];
71
- }
72
-
73
- function getVersionInfo(Version _version) public override view returns(VersionInfo memory) {
74
- return _getVersionableStorage()._versionHistory[_version];
75
- }
76
-
77
- function getInitializedVersion() public view returns(uint64) {
78
- return _getInitializedVersion();
79
- }
80
-
81
-
82
-
83
- // IMPORTANT each version must implement this function
84
- // each implementation MUST use onlyInitialising modifier
85
- // each implementation MUST call intializers of all base contracts...
86
- function _initialize(address owner, bytes memory data)
87
- internal
88
- onlyInitializing
89
- virtual
90
- {
91
- revert();
92
- }
93
-
94
-
95
- // IMPORTANT each version except version "1" must implement this function
96
- // each implementation MUST use onlyInitialising modifier
97
- function _upgrade(bytes memory data)
98
- internal
99
- onlyInitializing
100
- virtual
101
- {
102
- revert();
103
- }
104
-
105
- function _getVersionableStorage() private pure returns (VersionableStorage storage $) {
106
- assembly {
107
- $.slot := VERSIONABLE_LOCATION_V1
108
- }
109
- }
110
-
111
- // can only be called once per contract
112
- // needs to be called inside the proxy upgrade tx
113
- // TODO run reinitializer(version().toUint64()) modifier after "version()" is checked,
114
- function _updateVersionHistory(
115
- address implementation,
116
- address activatedBy
117
- )
118
- private
119
- onlyInitializing
120
- {
121
- VersionableStorage storage $ = _getVersionableStorage();
122
-
123
- uint64 version = _getInitializedVersion();
124
-
125
- Version thisVersion = getVersion();
126
-
127
- if(version == 1) {
128
- // thisVersion is alias to version "1"
129
- $._v1 = thisVersion;
130
- }
131
- else {
132
- require(thisVersion > $._v1, "INVALID VERSION");
133
- }
134
-
135
- // update version history
136
- $._versions.push(thisVersion);
137
- $._versionHistory[thisVersion] = VersionInfo(
138
- thisVersion,
139
- implementation,
140
- activatedBy,
141
- TimestampLib.blockTimestamp(),
142
- blockNumber()
143
- );
144
-
145
- emit LogVersionableInitialized(thisVersion, implementation, activatedBy);
146
- }
147
- }
@@ -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
- }