@etherisc/gif-next 0.0.2-f72939c-683 → 0.0.2-f73b68c-992

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 (785) hide show
  1. package/README.md +312 -46
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/{shared/IOwnable.sol/IOwnable.json → authorization/AccessAdmin.sol/IAccessManagedChecker.json} +4 -4
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1580 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +868 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1071 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2032 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1523 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2432 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -1626
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +759 -0
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +533 -1956
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2463 -0
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1025 -0
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +744 -0
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3738 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  107. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  110. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  111. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  116. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  118. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  120. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  122. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  124. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  126. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  128. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  130. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  132. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  134. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  136. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
  138. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  140. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  142. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  144. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  146. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  148. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  150. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +850 -0
  152. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +736 -0
  154. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  156. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  158. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  160. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  162. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +618 -0
  164. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  166. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  168. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  170. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  172. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +207 -275
  174. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  176. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  178. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  180. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  182. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  184. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  185. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  186. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  188. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  190. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +242 -12
  192. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1024 -119
  194. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1043 -0
  196. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  197. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  198. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +1450 -219
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  204. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1269 -0
  206. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  207. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
  208. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  210. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  212. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  214. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  216. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  217. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  218. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  219. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  220. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  222. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  224. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  229. package/artifacts/contracts/{instance/IInstanceLinked.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  230. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  234. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  236. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  238. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  240. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  241. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  242. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  244. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  245. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +47 -74
  246. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  247. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  248. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +229 -21
  250. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  251. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  252. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +198 -163
  254. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  256. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  258. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  259. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  260. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  262. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  264. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  266. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  267. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  268. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +275 -18
  270. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  271. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  272. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  273. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/Service.sol/Service.json} +248 -171
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  278. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  280. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  282. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  284. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  286. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  287. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  288. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  290. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  292. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  294. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  296. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  298. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  300. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  301. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  302. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  303. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  304. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  306. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  308. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  310. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  312. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  314. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  316. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  318. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  320. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  322. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  324. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  326. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  328. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  330. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  332. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  334. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  340. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  342. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  344. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  346. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  348. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  350. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  352. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  354. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  356. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  358. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  360. package/contracts/accounting/AccountingService.sol +262 -0
  361. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  362. package/contracts/accounting/IAccountingService.sol +45 -0
  363. package/contracts/authorization/AccessAdmin.sol +689 -0
  364. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  365. package/contracts/authorization/Authorization.sol +337 -0
  366. package/contracts/authorization/IAccess.sol +49 -0
  367. package/contracts/authorization/IAccessAdmin.sol +143 -0
  368. package/contracts/authorization/IAuthorization.sol +74 -0
  369. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  370. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  371. package/contracts/distribution/BasicDistribution.sol +141 -0
  372. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  373. package/contracts/distribution/Distribution.sol +289 -0
  374. package/contracts/distribution/DistributionService.sol +385 -0
  375. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  376. package/contracts/distribution/IDistributionComponent.sol +52 -0
  377. package/contracts/distribution/IDistributionService.sol +103 -0
  378. package/contracts/examples/fire/DamageLevel.sol +59 -0
  379. package/contracts/examples/fire/FirePool.sol +90 -0
  380. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  381. package/contracts/examples/fire/FireProduct.sol +437 -0
  382. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  383. package/contracts/examples/fire/FireUSD.sol +26 -0
  384. package/contracts/examples/unpermissioned/SimpleDistribution.sol +85 -0
  385. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  386. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  387. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  388. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  390. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  391. package/contracts/instance/BundleSet.sol +130 -0
  392. package/contracts/instance/IInstance.sol +64 -45
  393. package/contracts/instance/IInstanceService.sol +72 -0
  394. package/contracts/instance/Instance.sol +235 -59
  395. package/contracts/instance/InstanceAdmin.sol +437 -0
  396. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  397. package/contracts/instance/InstanceReader.sol +650 -0
  398. package/contracts/instance/InstanceService.sol +404 -0
  399. package/contracts/instance/InstanceServiceManager.sol +39 -0
  400. package/contracts/instance/InstanceStore.sol +298 -0
  401. package/contracts/instance/RiskSet.sol +118 -0
  402. package/contracts/instance/base/BalanceStore.sol +123 -0
  403. package/contracts/instance/base/Cloneable.sol +28 -0
  404. package/contracts/instance/base/ObjectCounter.sol +20 -0
  405. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  406. package/contracts/instance/base/ObjectSet.sol +77 -0
  407. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  408. package/contracts/instance/module/IBundle.sol +20 -0
  409. package/contracts/instance/module/IComponents.sol +51 -0
  410. package/contracts/instance/module/IDistribution.sol +44 -0
  411. package/contracts/instance/module/IPolicy.sol +85 -0
  412. package/contracts/instance/module/IRisk.sol +14 -0
  413. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  414. package/contracts/oracle/BasicOracle.sol +47 -0
  415. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  416. package/contracts/oracle/IOracle.sol +36 -0
  417. package/contracts/oracle/IOracleComponent.sol +33 -0
  418. package/contracts/oracle/IOracleService.sol +66 -0
  419. package/contracts/oracle/Oracle.sol +156 -0
  420. package/contracts/oracle/OracleService.sol +310 -0
  421. package/contracts/oracle/OracleServiceManager.sol +39 -0
  422. package/contracts/pool/BasicPool.sol +175 -0
  423. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  424. package/contracts/pool/BundleService.sol +395 -0
  425. package/contracts/pool/BundleServiceManager.sol +39 -0
  426. package/contracts/pool/IBundleService.sol +115 -0
  427. package/contracts/pool/IPoolComponent.sol +62 -0
  428. package/contracts/pool/IPoolService.sol +165 -0
  429. package/contracts/pool/Pool.sol +345 -0
  430. package/contracts/pool/PoolLib.sol +216 -0
  431. package/contracts/pool/PoolService.sol +757 -0
  432. package/contracts/pool/PoolServiceManager.sol +39 -0
  433. package/contracts/product/ApplicationService.sol +269 -0
  434. package/contracts/product/ApplicationServiceManager.sol +38 -0
  435. package/contracts/product/BasicProduct.sol +51 -0
  436. package/contracts/product/BasicProductAuthorization.sol +56 -0
  437. package/contracts/product/ClaimService.sol +632 -0
  438. package/contracts/product/ClaimServiceManager.sol +38 -0
  439. package/contracts/product/IApplicationService.sol +67 -0
  440. package/contracts/product/IClaimService.sol +135 -0
  441. package/contracts/product/IPolicyService.sol +95 -0
  442. package/contracts/product/IPricingService.sol +39 -0
  443. package/contracts/product/IProductComponent.sol +62 -0
  444. package/contracts/product/IRiskService.sol +33 -0
  445. package/contracts/product/PolicyService.sol +682 -0
  446. package/contracts/product/PolicyServiceLib.sol +65 -0
  447. package/contracts/product/PolicyServiceManager.sol +39 -0
  448. package/contracts/product/PricingService.sol +304 -0
  449. package/contracts/product/PricingServiceManager.sol +39 -0
  450. package/contracts/product/Product.sol +469 -0
  451. package/contracts/product/RiskService.sol +154 -0
  452. package/contracts/product/RiskServiceManager.sol +39 -0
  453. package/contracts/registry/ChainNft.sol +130 -40
  454. package/contracts/registry/IRegistry.sol +138 -29
  455. package/contracts/registry/IRegistryService.sol +62 -0
  456. package/contracts/registry/IRelease.sol +26 -0
  457. package/contracts/registry/ITransferInterceptor.sol +6 -0
  458. package/contracts/registry/Registry.sol +631 -282
  459. package/contracts/registry/RegistryAdmin.sol +354 -0
  460. package/contracts/registry/RegistryService.sol +241 -0
  461. package/contracts/registry/RegistryServiceManager.sol +53 -0
  462. package/contracts/registry/ReleaseAdmin.sol +245 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  464. package/contracts/registry/ReleaseRegistry.sol +511 -0
  465. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  466. package/contracts/registry/TokenRegistry.sol +313 -0
  467. package/contracts/shared/Component.sol +227 -0
  468. package/contracts/shared/ComponentService.sol +692 -0
  469. package/contracts/shared/ComponentServiceManager.sol +38 -0
  470. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  471. package/contracts/shared/ContractLib.sol +253 -0
  472. package/contracts/shared/IComponent.sol +61 -0
  473. package/contracts/shared/IComponentService.sol +112 -0
  474. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  475. package/contracts/shared/IKeyValueStore.sol +54 -0
  476. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  477. package/contracts/shared/INftOwnable.sol +25 -0
  478. package/contracts/shared/IPolicyHolder.sol +35 -0
  479. package/contracts/shared/IRegisterable.sol +33 -20
  480. package/contracts/shared/IRegistryLinked.sol +11 -0
  481. package/contracts/shared/IService.sol +23 -0
  482. package/contracts/shared/InitializableERC165.sol +27 -0
  483. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  484. package/contracts/shared/KeyValueStore.sol +131 -0
  485. package/contracts/shared/Lifecycle.sol +88 -0
  486. package/contracts/shared/NftIdSet.sol +65 -0
  487. package/contracts/shared/NftOwnable.sol +127 -0
  488. package/contracts/shared/PolicyHolder.sol +62 -0
  489. package/contracts/shared/Registerable.sol +83 -60
  490. package/contracts/shared/RegistryLinked.sol +38 -0
  491. package/contracts/shared/Service.sol +65 -0
  492. package/contracts/shared/TokenHandler.sol +341 -0
  493. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  494. package/contracts/staking/IStaking.sol +165 -0
  495. package/contracts/staking/IStakingService.sol +165 -0
  496. package/contracts/staking/StakeManagerLib.sol +224 -0
  497. package/contracts/staking/Staking.sol +526 -0
  498. package/contracts/staking/StakingLifecycle.sol +23 -0
  499. package/contracts/staking/StakingManager.sol +52 -0
  500. package/contracts/staking/StakingReader.sol +190 -0
  501. package/contracts/staking/StakingService.sol +430 -0
  502. package/contracts/staking/StakingServiceManager.sol +45 -0
  503. package/contracts/staking/StakingStore.sol +605 -0
  504. package/contracts/staking/TargetManagerLib.sol +211 -0
  505. package/contracts/{types → type}/AddressSet.sol +1 -1
  506. package/contracts/type/Amount.sol +150 -0
  507. package/contracts/{types → type}/Blocknumber.sol +27 -3
  508. package/contracts/type/ClaimId.sol +80 -0
  509. package/contracts/type/DistributorType.sol +55 -0
  510. package/contracts/type/Fee.sol +66 -0
  511. package/contracts/{types → type}/Key32.sol +10 -5
  512. package/contracts/type/Key32Set.sol +62 -0
  513. package/contracts/{types → type}/NftId.sol +28 -15
  514. package/contracts/type/NftIdSet.sol +62 -0
  515. package/contracts/type/ObjectType.sol +303 -0
  516. package/contracts/type/PayoutId.sol +82 -0
  517. package/contracts/type/Referral.sol +90 -0
  518. package/contracts/type/RequestId.sol +75 -0
  519. package/contracts/type/RiskId.sol +75 -0
  520. package/contracts/type/RoleId.sol +182 -0
  521. package/contracts/type/Seconds.sol +101 -0
  522. package/contracts/type/Selector.sol +107 -0
  523. package/contracts/{types → type}/StateId.sol +53 -5
  524. package/contracts/type/String.sol +53 -0
  525. package/contracts/{types → type}/Timestamp.sol +37 -19
  526. package/contracts/{types → type}/UFixed.sol +48 -12
  527. package/contracts/{types → type}/Version.sol +31 -6
  528. package/contracts/upgradeability/IVersionable.sol +53 -0
  529. package/contracts/upgradeability/ProxyManager.sol +232 -0
  530. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  531. package/contracts/upgradeability/Versionable.sol +59 -0
  532. package/package.json +13 -8
  533. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  535. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  539. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  540. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  541. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -455
  542. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  543. package/artifacts/contracts/components/Product.sol/Product.json +0 -348
  544. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  545. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  546. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  548. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  550. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  552. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  554. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  556. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  558. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  560. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  562. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  564. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  566. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  568. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  570. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  572. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  574. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  576. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  578. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  579. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  580. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  581. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  582. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -81
  583. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  584. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  585. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  587. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  588. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +0 -344
  589. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  590. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  591. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  592. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  593. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  595. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  596. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  597. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  598. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  599. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  600. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  601. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  602. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -265
  603. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  604. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  605. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -265
  606. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  607. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  608. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  609. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  610. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  611. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  612. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  613. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -136
  614. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  615. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  616. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  617. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -136
  618. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  619. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  620. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -288
  621. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  622. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -288
  623. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  624. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  625. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  626. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  627. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  628. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  629. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  630. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  631. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -132
  632. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  633. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -150
  634. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  635. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  636. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  637. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -531
  638. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  639. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  640. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  641. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -531
  642. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  643. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  644. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  645. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  646. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  647. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  648. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  649. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  650. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -744
  651. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  652. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  653. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  654. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  655. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  656. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  657. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  658. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -164
  659. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  660. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -164
  661. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  662. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  663. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  664. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -455
  665. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  666. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -479
  667. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  668. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  669. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  670. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  671. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  672. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  673. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  674. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  675. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  676. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  677. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  678. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  679. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  680. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  681. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  682. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  683. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  685. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  687. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  689. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  690. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  691. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  693. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  694. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  695. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  697. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  699. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  701. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  703. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  705. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  707. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  709. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  710. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  711. package/contracts/components/BaseComponent.sol +0 -94
  712. package/contracts/components/IBaseComponent.sol +0 -19
  713. package/contracts/components/IPoolComponent.sol +0 -57
  714. package/contracts/components/IProductComponent.sol +0 -19
  715. package/contracts/components/Pool.sol +0 -191
  716. package/contracts/components/Product.sol +0 -181
  717. package/contracts/experiment/errors/Require.sol +0 -38
  718. package/contracts/experiment/errors/Revert.sol +0 -44
  719. package/contracts/experiment/inheritance/A.sol +0 -53
  720. package/contracts/experiment/inheritance/B.sol +0 -28
  721. package/contracts/experiment/inheritance/C.sol +0 -34
  722. package/contracts/experiment/inheritance/IA.sol +0 -13
  723. package/contracts/experiment/inheritance/IB.sol +0 -10
  724. package/contracts/experiment/inheritance/IC.sol +0 -12
  725. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  726. package/contracts/experiment/statemachine/ISM.sol +0 -25
  727. package/contracts/experiment/statemachine/README.md +0 -112
  728. package/contracts/experiment/statemachine/SM.sol +0 -57
  729. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  730. package/contracts/experiment/types/TypeA.sol +0 -47
  731. package/contracts/experiment/types/TypeB.sol +0 -29
  732. package/contracts/instance/IInstanceLinked.sol +0 -8
  733. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  734. package/contracts/instance/base/IInstanceBase.sol +0 -19
  735. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  736. package/contracts/instance/base/IService.sol +0 -15
  737. package/contracts/instance/base/InstanceBase.sol +0 -84
  738. package/contracts/instance/base/KeyValueStore.sol +0 -161
  739. package/contracts/instance/base/Lifecycle.sol +0 -100
  740. package/contracts/instance/base/ModuleBase.sol +0 -53
  741. package/contracts/instance/base/ServiceBase.sol +0 -37
  742. package/contracts/instance/module/access/Access.sol +0 -149
  743. package/contracts/instance/module/access/IAccess.sol +0 -53
  744. package/contracts/instance/module/bundle/BundleModule.sol +0 -135
  745. package/contracts/instance/module/bundle/IBundle.sol +0 -51
  746. package/contracts/instance/module/compensation/CompensationModule.sol +0 -17
  747. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  748. package/contracts/instance/module/component/ComponentModule.sol +0 -81
  749. package/contracts/instance/module/component/IComponent.sol +0 -29
  750. package/contracts/instance/module/policy/IPolicy.sol +0 -62
  751. package/contracts/instance/module/policy/PolicyModule.sol +0 -92
  752. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  753. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  754. package/contracts/instance/module/risk/IRisk.sol +0 -27
  755. package/contracts/instance/module/risk/RiskModule.sol +0 -70
  756. package/contracts/instance/module/treasury/ITreasury.sol +0 -96
  757. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  758. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -171
  759. package/contracts/instance/service/ComponentOwnerService.sol +0 -155
  760. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  761. package/contracts/instance/service/IPoolService.sol +0 -30
  762. package/contracts/instance/service/IProductService.sol +0 -78
  763. package/contracts/instance/service/PoolService.sol +0 -129
  764. package/contracts/instance/service/ProductService.sol +0 -406
  765. package/contracts/registry/IChainNft.sol +0 -21
  766. package/contracts/registry/IRegistryLinked.sol +0 -8
  767. package/contracts/shared/ERC165.sol +0 -21
  768. package/contracts/shared/IOwnable.sol +0 -6
  769. package/contracts/shared/IVersionable.sol +0 -52
  770. package/contracts/shared/Versionable.sol +0 -89
  771. package/contracts/test/TestFee.sol +0 -25
  772. package/contracts/test/TestPool.sol +0 -24
  773. package/contracts/test/TestProduct.sol +0 -66
  774. package/contracts/test/TestRegisterable.sol +0 -19
  775. package/contracts/test/TestRoleId.sol +0 -14
  776. package/contracts/test/TestService.sol +0 -32
  777. package/contracts/test/TestToken.sol +0 -26
  778. package/contracts/test/TestVersion.sol +0 -44
  779. package/contracts/test/TestVersionable.sol +0 -17
  780. package/contracts/types/ChainId.sol +0 -38
  781. package/contracts/types/Fee.sol +0 -51
  782. package/contracts/types/NftIdSet.sol +0 -60
  783. package/contracts/types/ObjectType.sol +0 -127
  784. package/contracts/types/RiskId.sol +0 -43
  785. package/contracts/types/RoleId.sol +0 -38
@@ -0,0 +1,511 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
+
7
+ import {ContractLib} from "../shared/ContractLib.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
10
+ import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
12
+ import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "../type/StateId.sol";
13
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
14
+
15
+ import {IService} from "../shared/IService.sol";
16
+
17
+ import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
18
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
19
+
20
+ import {IRegistry} from "./IRegistry.sol";
21
+ import {IRelease} from "./IRelease.sol";
22
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
23
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
24
+ import {RegistryAdmin} from "./RegistryAdmin.sol";
25
+ import {Registry} from "./Registry.sol";
26
+ import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
27
+ import {ReleaseAdmin} from "./ReleaseAdmin.sol";
28
+
29
+ /// @dev The ReleaseRegistry manages the lifecycle of major GIF releases and their services.
30
+ /// The creation of a new GIF release is a multi-step process:
31
+ /// 1. The creation of a new GIF release is initiated by the GIF admin.
32
+ /// 2. A GIF manager then prepares the release by setting up the service authorization contract.
33
+ /// 3. The GIF manager deploys and registers all related service contracts with the release registry.
34
+ /// 4. The GIF admin verifies and activates the release.
35
+ /// 3. The GIF admin may pause and resume a release.
36
+ contract ReleaseRegistry is
37
+ AccessManaged,
38
+ ReleaseLifecycle,
39
+ IRegistryLinked
40
+ {
41
+ uint256 public constant INITIAL_GIF_VERSION = 3;// first active release version
42
+
43
+ event LogReleaseCreation(IAccessAdmin admin, VersionPart release, bytes32 salt);
44
+ event LogReleaseActivation(VersionPart release);
45
+ event LogReleaseDisabled(VersionPart release);
46
+ event LogReleaseEnabled(VersionPart release);
47
+
48
+ // constructor
49
+ error ErrorReleaseRegistryNotRegistry(Registry registry);
50
+
51
+ // _verifyServiceAuthorization
52
+ error ErrorReleaseRegistryNotServiceAuth(address notAuth);
53
+ error ErrorReleaseRegistryServiceAuthVersionMismatch(IServiceAuthorization auth, VersionPart expected, VersionPart actual);
54
+ error ErrorReleaseRegistryServiceAuthDomainsZero(IServiceAuthorization auth, VersionPart release);
55
+
56
+ // registerService
57
+ error ErrorReleaseRegistryServiceAddressMismatch(address expected, address actual);
58
+
59
+ // activateNextRelease
60
+ error ErrorReleaseRegistryRegistryServiceMissing(VersionPart releaseVersion);
61
+
62
+ // _verifyService
63
+ error ErrorReleaseRegistryNotService(address notService);
64
+ error ErrorReleaseRegistryServiceAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
65
+ error ErrorReleaseRegistryServiceVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
66
+ error ErrorReleaseRegistryServiceDomainMismatch(IService service, ObjectType expectedDomain, ObjectType actualDomain);
67
+
68
+ // _verifyServiceInfo
69
+ error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
70
+ error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
71
+ error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
72
+ error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
73
+ error ErrorReleaseRegistryServiceSelfRegistration(IService service);
74
+ error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
75
+
76
+ RegistryAdmin public immutable _admin;
77
+ Registry public immutable _registry;
78
+
79
+ mapping(VersionPart release => IRelease.ReleaseInfo info) internal _releaseInfo;
80
+ VersionPart [] internal _release; // array of all created releases
81
+ ReleaseAdmin internal _masterReleaseAdmin;
82
+
83
+ VersionPart internal _latest; // latest active release
84
+ VersionPart internal _next; // release version to create and activate
85
+
86
+ // counters per release
87
+ uint256 internal _registeredServices = 0;
88
+ uint256 internal _servicesToRegister = 0;
89
+
90
+ constructor(Registry registry)
91
+ AccessManaged(msg.sender)
92
+ {
93
+ if (!ContractLib.isRegistry(address(registry))) {
94
+ revert ErrorReleaseRegistryNotRegistry(registry);
95
+ }
96
+
97
+ setAuthority(registry.getAuthority());
98
+
99
+ _registry = registry;
100
+ _admin = RegistryAdmin(_registry.getRegistryAdminAddress());
101
+
102
+ _masterReleaseAdmin = new ReleaseAdmin();
103
+
104
+ _next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
105
+ }
106
+
107
+ /// @dev Initiates the creation of a new GIF release by the GIF admin.
108
+ /// Sets previous release into SKIPPED state if it was created but not activated.
109
+ /// Sets the new release into state SCHEDULED.
110
+ function createNextRelease()
111
+ external
112
+ restricted() // GIF_ADMIN_ROLE
113
+ returns(VersionPart)
114
+ {
115
+ VersionPart release = _next;
116
+
117
+ if(isValidTransition(RELEASE(), _releaseInfo[release].state, SKIPPED())) {
118
+ _releaseInfo[release].state = SKIPPED();
119
+ }
120
+
121
+ release = VersionPartLib.toVersionPart(release.toInt() + 1);
122
+ _release.push(release);
123
+
124
+ _next = release;
125
+ _releaseInfo[release].version = release;
126
+ _releaseInfo[release].state = getInitialState(RELEASE());
127
+ _servicesToRegister = 0;
128
+ _registeredServices = 0;
129
+
130
+ return _next;
131
+ }
132
+
133
+ function prepareNextRelease(
134
+ IServiceAuthorization serviceAuthorization,
135
+ bytes32 salt
136
+ )
137
+ external
138
+ restricted() // GIF_MANAGER_ROLE
139
+ returns(
140
+ ReleaseAdmin releaseAdmin,
141
+ VersionPart releaseVersion,
142
+ bytes32 releaseSalt
143
+ )
144
+ {
145
+ releaseVersion = _next;
146
+
147
+ // release can transition into DEPLOYING state
148
+ checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), SCHEDULED(), DEPLOYING());
149
+
150
+ // verify authorizations
151
+ uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
152
+
153
+ // create and initialize release admin
154
+ releaseAdmin = _cloneNewReleaseAdmin(releaseVersion);
155
+ releaseSalt = salt;
156
+
157
+ // ensures unique salt
158
+ // TODO CreateX have clones capability also
159
+ // what would releaseSalt look like if used with CreateX in pemissioned mode?
160
+ /*releaseSalt = keccak256(
161
+ bytes.concat(
162
+ bytes32(releaseVersion.toInt()),
163
+ salt));*/
164
+
165
+ _servicesToRegister = serviceDomainsCount;
166
+ _releaseInfo[releaseVersion].state = DEPLOYING();
167
+ _releaseInfo[releaseVersion].salt = releaseSalt;
168
+ // TODO allow for the same serviceAuthorization address to be used for multiple releases?
169
+ _releaseInfo[releaseVersion].auth = serviceAuthorization;
170
+ _releaseInfo[releaseVersion].releaseAdmin = address(releaseAdmin);
171
+
172
+ emit LogReleaseCreation(releaseAdmin, releaseVersion, releaseSalt);
173
+ }
174
+
175
+ function registerService(IService service)
176
+ external
177
+ restricted // GIF_MANAGER_ROLE
178
+ returns(NftId nftId)
179
+ {
180
+ VersionPart releaseVersion = _next;
181
+
182
+ // release can transition to DEPLOYED state
183
+ checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
184
+
185
+ address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
186
+ IServiceAuthorization releaseAuth = _releaseInfo[releaseVersion].auth;
187
+ ObjectType expectedDomain = releaseAuth.getServiceDomain(_registeredServices);
188
+
189
+ // service can work with release registry and release version
190
+ (
191
+ IRegistry.ObjectInfo memory info,
192
+ ObjectType serviceDomain,
193
+ VersionPart serviceVersion
194
+ //,string memory serviceName
195
+ ) = _verifyService(
196
+ service,
197
+ releaseAuthority,
198
+ releaseVersion,
199
+ expectedDomain
200
+ );
201
+
202
+ //_releaseInfo[releaseVersion].addresses.push(address(service)); // TODO get this info from auth contract?
203
+ //_releaseInfo[releaseVersion].domains.push(serviceDomain);
204
+ //_releaseInfo[releaseVersion].names.push(serviceName); // TODO if needed read in _verifyService()
205
+
206
+ _registeredServices++; // TODO use releaseInfo.someArray.length instead of _registeredServices
207
+
208
+ // release fully deployed
209
+ if(_servicesToRegister == _registeredServices) {
210
+ _releaseInfo[releaseVersion].state = DEPLOYED();
211
+ }
212
+
213
+ // TODO: service address matches defined in release auth (precalculated one)
214
+ // revert ErrorReleaseRegistryServiceAddressMismatch()
215
+
216
+ // setup service authorization
217
+ ReleaseAdmin releaseAdmin = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin);
218
+ releaseAdmin.setReleaseLocked(false);
219
+ releaseAdmin.authorizeService(
220
+ releaseAuth,
221
+ service,
222
+ serviceDomain,
223
+ releaseVersion);
224
+ releaseAdmin.setReleaseLocked(true);
225
+
226
+ // register service with registry
227
+ nftId = _registry.registerService(info, serviceVersion, serviceDomain);
228
+ service.linkToRegisteredNftId();
229
+ }
230
+
231
+
232
+ // TODO return activated version
233
+ function activateNextRelease()
234
+ external
235
+ restricted // GIF_ADMIN_ROLE
236
+ {
237
+ VersionPart release = _next;
238
+
239
+ // release can transition to ACTIVE state
240
+ checkTransition(_releaseInfo[release].state, RELEASE(), DEPLOYED(), ACTIVE());
241
+
242
+ _latest = release;
243
+ _releaseInfo[release].state = ACTIVE();
244
+ _releaseInfo[release].activatedAt = TimestampLib.blockTimestamp();
245
+ _releaseInfo[release].disabledAt = TimestampLib.max();
246
+
247
+ // grant special roles for registry/staking/pool services
248
+ // this will enable access to core contracts functions
249
+
250
+ // registry service MUST be registered for each release
251
+ address service = _registry.getServiceAddress(REGISTRY(), release);
252
+ if(service == address(0)) {
253
+ revert ErrorReleaseRegistryRegistryServiceMissing(release);
254
+ }
255
+
256
+ _admin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
257
+
258
+ service = _registry.getServiceAddress(STAKING(), release);
259
+ if(service != address(0)) {
260
+ _admin.grantServiceRoleForAllVersions(IService(service), STAKING());
261
+ }
262
+
263
+ service = _registry.getServiceAddress(POOL(), release);
264
+ if(service != address(0)) {
265
+ _admin.grantServiceRoleForAllVersions(IService(service), POOL());
266
+ }
267
+
268
+ _setReleaseLocked(release, false);
269
+
270
+ emit LogReleaseActivation(release);
271
+ }
272
+
273
+ /// @dev stop/resume operations with restricted functions
274
+ function setActive(VersionPart release, bool active)
275
+ public
276
+ restricted
277
+ {
278
+ StateId state = _releaseInfo[release].state;
279
+
280
+ if(active) {
281
+ checkTransition(state, RELEASE(), PAUSED(), ACTIVE());
282
+ _releaseInfo[release].state = ACTIVE();
283
+ _releaseInfo[release].disabledAt = TimestampLib.max();
284
+ emit LogReleaseEnabled(release);
285
+ } else {
286
+ checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
287
+ _releaseInfo[release].state = PAUSED();
288
+ _releaseInfo[release].disabledAt = TimestampLib.blockTimestamp();
289
+ emit LogReleaseDisabled(release);
290
+ }
291
+
292
+ _setReleaseLocked(release, !active);
293
+ }
294
+
295
+ //--- view functions ----------------------------------------------------//
296
+
297
+ function predictDeterministicAddress(
298
+ address implementation,
299
+ bytes32 salt,
300
+ address deployer
301
+ ) external pure returns (address predicted) {
302
+ return Clones.predictDeterministicAddress(implementation, salt, deployer);
303
+ }
304
+
305
+ function isActiveRelease(VersionPart release) public view returns(bool) {
306
+ return _releaseInfo[release].state == ACTIVE();
307
+ }
308
+
309
+ function getReleaseInfo(VersionPart release) external view returns(IRelease.ReleaseInfo memory) {
310
+ return _releaseInfo[release];
311
+ }
312
+
313
+ /// @dev Returns the number of created releases.
314
+ /// Releases might be in another state than ACTIVE.
315
+ function releases() external view returns (uint) {
316
+ return _release.length;
317
+ }
318
+
319
+ /// @dev Returns the n-th release version.
320
+ /// Valid values for idx [0 .. releases() - 1]
321
+ function getVersion(uint256 idx) external view returns (VersionPart release) {
322
+ // return _releases;
323
+ return _release[idx];
324
+ }
325
+
326
+ function getNextVersion() public view returns(VersionPart) {
327
+ return _next;
328
+ }
329
+
330
+ /// @dev Returns the latest activated relase version.
331
+ /// There is no guarantee that the release is not currently paused.
332
+ function getLatestVersion() external view returns(VersionPart) {
333
+ return _latest;
334
+ }
335
+
336
+ function getState(VersionPart release) external view returns (StateId stateId) {
337
+ return _releaseInfo[release].state;
338
+ }
339
+
340
+ function getRemainingServicesToRegister() external view returns (uint256 services) {
341
+ return _servicesToRegister - _registeredServices;
342
+ }
343
+
344
+ function getServiceAuthorization(VersionPart release)
345
+ external
346
+ view
347
+ returns (IServiceAuthorization serviceAuthorization)
348
+ {
349
+ return _releaseInfo[release].auth;
350
+ }
351
+
352
+ function getRegistryAdmin() external view returns (address) {
353
+ return address(_admin);
354
+ }
355
+
356
+ //--- IRegistryLinked ------------------------------------------------------//
357
+
358
+ function getRegistry() external view returns (IRegistry) {
359
+ return _registry;
360
+ }
361
+
362
+ //--- private functions ----------------------------------------------------//
363
+
364
+ function _setReleaseLocked(VersionPart release, bool locked)
365
+ private
366
+ {
367
+ ReleaseAdmin(
368
+ _releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
369
+ }
370
+
371
+
372
+ function _cloneNewReleaseAdmin(VersionPart release)
373
+ private
374
+ returns (ReleaseAdmin clonedAdmin)
375
+ {
376
+ AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
377
+ Clones.clone(
378
+ _masterReleaseAdmin.authority()
379
+ )
380
+ );
381
+
382
+ clonedAdmin = ReleaseAdmin(
383
+ Clones.clone(
384
+ address(_masterReleaseAdmin)
385
+ )
386
+ );
387
+
388
+ clonedAdmin.initialize(clonedAccessManager);
389
+ clonedAdmin.completeSetup(
390
+ address(_registry),
391
+ address(this), // release registry (this contract)
392
+ release);
393
+
394
+ // lock release (remains locked until activation)
395
+ clonedAdmin.setReleaseLocked(true);
396
+ }
397
+
398
+
399
+ function _verifyServiceAuthorization(
400
+ IServiceAuthorization serviceAuthorization,
401
+ VersionPart releaseVersion,
402
+ bytes32 salt
403
+ )
404
+ private
405
+ view
406
+ returns (uint256 serviceDomainsCount)
407
+ {
408
+ // authorization contract supports IServiceAuthorization interface
409
+ if(!serviceAuthorization.supportsInterface(type(IServiceAuthorization).interfaceId)) {
410
+ revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
411
+ }
412
+
413
+ // authorizaions contract version matches with release version
414
+ VersionPart authVersion = serviceAuthorization.getRelease();
415
+ if (releaseVersion != authVersion) {
416
+ revert ErrorReleaseRegistryServiceAuthVersionMismatch(serviceAuthorization, releaseVersion, authVersion);
417
+ }
418
+
419
+ // sanity check to ensure service domain list is not empty
420
+ serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
421
+ if (serviceDomainsCount == 0) {
422
+ revert ErrorReleaseRegistryServiceAuthDomainsZero(serviceAuthorization, releaseVersion);
423
+ }
424
+ }
425
+
426
+ // TODO get service names
427
+ function _verifyService(
428
+ IService service,
429
+ address expectedAuthority,
430
+ VersionPart expectedVersion,
431
+ ObjectType expectedDomain
432
+ )
433
+ internal
434
+ view
435
+ returns(
436
+ IRegistry.ObjectInfo memory serviceInfo,
437
+ ObjectType serviceDomain,
438
+ VersionPart serviceVersion
439
+ )
440
+ {
441
+ if(!service.supportsInterface(type(IService).interfaceId)) {
442
+ revert ErrorReleaseRegistryNotService(address(service));
443
+ }
444
+
445
+ address owner = msg.sender;
446
+ address serviceAuthority = service.authority();
447
+ serviceVersion = service.getVersion().toMajorPart();
448
+ serviceDomain = service.getDomain();// checked in registry
449
+ serviceInfo = service.getInitialInfo();
450
+
451
+ _verifyServiceInfo(service, serviceInfo, owner);
452
+
453
+ if(serviceAuthority != expectedAuthority) {
454
+ revert ErrorReleaseRegistryServiceAuthorityMismatch(
455
+ service,
456
+ serviceAuthority,
457
+ expectedAuthority);
458
+ }
459
+
460
+ if(serviceVersion != expectedVersion) {
461
+ revert ErrorReleaseRegistryServiceVersionMismatch(
462
+ service,
463
+ serviceVersion,
464
+ expectedVersion);
465
+ }
466
+
467
+ if(serviceDomain != expectedDomain) {
468
+ revert ErrorReleaseRegistryServiceDomainMismatch(
469
+ service,
470
+ expectedDomain,
471
+ serviceDomain);
472
+ }
473
+ }
474
+
475
+
476
+ function _verifyServiceInfo(
477
+ IService service,
478
+ IRegistry.ObjectInfo memory info,
479
+ address expectedOwner // assume always valid, can not be 0
480
+ )
481
+ internal
482
+ view
483
+ {
484
+ if(info.objectAddress != address(service)) {
485
+ revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, info.objectAddress);
486
+ }
487
+
488
+ if(info.isInterceptor != false) { // service is never interceptor
489
+ revert ErrorReleaseRegistryServiceInfoInterceptorInvalid(service, info.isInterceptor);
490
+ }
491
+
492
+ if(info.objectType != SERVICE()) {
493
+ revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
494
+ }
495
+
496
+ address owner = info.initialOwner;
497
+
498
+ if(owner != expectedOwner) { // registerable owner protection
499
+ revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, owner);
500
+ }
501
+
502
+ if(owner == address(service)) {
503
+ revert ErrorReleaseRegistryServiceSelfRegistration(service);
504
+ }
505
+
506
+ if(_registry.isRegistered(owner)) {
507
+ revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
508
+ }
509
+ }
510
+ }
511
+