@etherisc/gif-next 0.0.2-accfb48-991 → 0.0.2-ad36a6a-080

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 (709) hide show
  1. package/README.md +121 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1234 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +483 -552
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1012 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1405 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  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/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  38. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1491 -0
  40. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +410 -0
  42. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1946 -0
  44. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +414 -0
  46. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1545 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1980 -0
  56. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  57. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +277 -1310
  60. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  61. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +447 -170
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +343 -3110
  64. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1623 -0
  66. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  68. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  69. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1008 -387
  70. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +515 -393
  72. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +329 -123
  74. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3607 -0
  76. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  78. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  79. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +38 -2
  80. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  82. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  84. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  86. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  88. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  90. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  91. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  94. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  95. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  96. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  98. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  100. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  102. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +378 -373
  104. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  106. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  108. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +927 -0
  110. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +710 -0
  112. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1276 -0
  114. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  116. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1431 -0
  118. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
  120. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  121. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +931 -0
  122. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +937 -0
  124. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  125. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1267 -0
  126. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  127. package/artifacts/contracts/pool/Pool.sol/Pool.json +1062 -0
  128. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1612 -0
  130. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -0
  132. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +737 -0
  134. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +698 -0
  136. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  137. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1098 -0
  138. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  140. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  141. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1370 -0
  142. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
  144. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  145. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IApplicationService.sol/IApplicationService.json} +252 -181
  146. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  148. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +896 -0
  150. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  151. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  152. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  153. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +950 -0
  154. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +125 -191
  156. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  157. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1268 -0
  158. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +770 -0
  160. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  161. package/artifacts/contracts/product/PricingService.sol/PricingService.json +865 -0
  162. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +746 -0
  164. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  165. package/artifacts/contracts/product/Product.sol/Product.json +1056 -0
  166. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  167. package/artifacts/contracts/product/RiskService.sol/RiskService.json +588 -0
  168. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +682 -0
  170. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  171. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  172. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  173. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +611 -127
  174. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +290 -297
  176. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  177. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  178. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/Registry.sol/Registry.json +940 -162
  180. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1858 -0
  182. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +279 -410
  184. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +315 -131
  186. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  188. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  190. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  192. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
  194. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/Component.sol/Component.json} +361 -345
  196. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  197. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1573 -0
  198. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +794 -0
  200. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  201. package/artifacts/contracts/shared/{RegisterableUpgradable.sol/RegisterableUpgradable.json → ComponentVerifyingService.sol/ComponentVerifyingService.json} +149 -159
  202. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  204. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  205. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +267 -202
  206. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  208. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  209. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +700 -0
  210. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  212. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  214. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  215. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  216. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  217. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  218. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  220. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  221. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  222. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
  224. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  226. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  228. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  229. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  230. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  231. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  232. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  234. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  236. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  237. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +65 -30
  238. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  239. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +44 -54
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  245. package/artifacts/contracts/shared/Service.sol/Service.json +115 -183
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  248. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  249. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  250. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  251. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  252. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  254. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  256. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  257. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  258. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +750 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1236 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  276. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  278. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  280. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  282. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  286. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  288. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  290. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  292. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  294. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  296. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  298. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  300. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  302. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  320. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  322. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  323. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  324. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +586 -0
  326. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  328. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  330. package/contracts/authorization/AccessAdmin.sol +592 -0
  331. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  332. package/contracts/authorization/Authorization.sol +221 -0
  333. package/contracts/authorization/IAccess.sol +48 -0
  334. package/contracts/authorization/IAccessAdmin.sol +135 -0
  335. package/contracts/authorization/IAuthorization.sol +54 -0
  336. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  337. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  338. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  339. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  340. package/contracts/distribution/BasicDistribution.sol +138 -0
  341. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  342. package/contracts/distribution/Distribution.sol +295 -0
  343. package/contracts/distribution/DistributionService.sol +336 -0
  344. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  345. package/contracts/distribution/IDistributionComponent.sol +52 -0
  346. package/contracts/distribution/IDistributionService.sol +101 -0
  347. package/contracts/examples/fire/DamageLevel.sol +59 -0
  348. package/contracts/examples/fire/FirePool.sol +75 -0
  349. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  350. package/contracts/examples/fire/FireProduct.sol +410 -0
  351. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  352. package/contracts/examples/fire/FireUSD.sol +26 -0
  353. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  354. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  355. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  356. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  357. package/contracts/instance/BundleSet.sol +126 -0
  358. package/contracts/instance/IInstance.sol +56 -47
  359. package/contracts/instance/IInstanceService.sol +78 -16
  360. package/contracts/instance/Instance.sol +159 -373
  361. package/contracts/instance/InstanceAdmin.sol +288 -0
  362. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  363. package/contracts/instance/InstanceReader.sol +264 -84
  364. package/contracts/instance/InstanceService.sol +421 -154
  365. package/contracts/instance/InstanceServiceManager.sol +14 -32
  366. package/contracts/instance/InstanceStore.sol +287 -0
  367. package/contracts/instance/base/BalanceStore.sol +123 -0
  368. package/contracts/instance/base/Cloneable.sol +28 -0
  369. package/contracts/instance/base/ObjectCounter.sol +21 -0
  370. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  371. package/contracts/instance/base/ObjectSet.sol +79 -0
  372. package/contracts/instance/module/IAccess.sol +29 -21
  373. package/contracts/instance/module/IBundle.sol +8 -8
  374. package/contracts/instance/module/IComponents.sol +48 -0
  375. package/contracts/instance/module/IDistribution.sol +6 -4
  376. package/contracts/instance/module/IPolicy.sol +58 -19
  377. package/contracts/instance/module/IRisk.sol +1 -1
  378. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  379. package/contracts/oracle/BasicOracle.sol +48 -0
  380. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  381. package/contracts/oracle/IOracle.sol +36 -0
  382. package/contracts/oracle/IOracleComponent.sol +33 -0
  383. package/contracts/oracle/IOracleService.sol +65 -0
  384. package/contracts/oracle/Oracle.sol +167 -0
  385. package/contracts/oracle/OracleService.sol +281 -0
  386. package/contracts/oracle/OracleServiceManager.sol +39 -0
  387. package/contracts/pool/BasicPool.sol +166 -0
  388. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  389. package/contracts/pool/BundleService.sol +461 -0
  390. package/contracts/pool/BundleServiceManager.sol +39 -0
  391. package/contracts/pool/IBundleService.sol +143 -0
  392. package/contracts/pool/IPoolComponent.sol +68 -0
  393. package/contracts/pool/IPoolService.sol +171 -0
  394. package/contracts/pool/Pool.sol +353 -0
  395. package/contracts/pool/PoolService.sol +563 -0
  396. package/contracts/pool/PoolServiceManager.sol +39 -0
  397. package/contracts/product/ApplicationService.sol +251 -0
  398. package/contracts/product/ApplicationServiceManager.sol +38 -0
  399. package/contracts/product/BasicProduct.sol +53 -0
  400. package/contracts/product/BasicProductAuthorization.sol +43 -0
  401. package/contracts/product/ClaimService.sol +581 -0
  402. package/contracts/product/ClaimServiceManager.sol +38 -0
  403. package/contracts/product/IApplicationService.sol +63 -0
  404. package/contracts/product/IClaimService.sol +122 -0
  405. package/contracts/product/IPolicyService.sol +80 -0
  406. package/contracts/product/IPricingService.sol +39 -0
  407. package/contracts/product/IProductComponent.sol +53 -0
  408. package/contracts/product/IRiskService.sol +33 -0
  409. package/contracts/product/PolicyService.sol +686 -0
  410. package/contracts/product/PolicyServiceManager.sol +39 -0
  411. package/contracts/product/PricingService.sol +300 -0
  412. package/contracts/product/PricingServiceManager.sol +39 -0
  413. package/contracts/product/Product.sol +432 -0
  414. package/contracts/product/RiskService.sol +96 -0
  415. package/contracts/product/RiskServiceManager.sol +39 -0
  416. package/contracts/registry/ChainNft.sol +79 -31
  417. package/contracts/registry/IRegistry.sol +124 -35
  418. package/contracts/registry/IRegistryService.sol +38 -28
  419. package/contracts/registry/ITransferInterceptor.sol +1 -0
  420. package/contracts/registry/Registry.sol +532 -273
  421. package/contracts/registry/RegistryAdmin.sol +464 -0
  422. package/contracts/registry/RegistryService.sol +135 -234
  423. package/contracts/registry/RegistryServiceManager.sol +26 -53
  424. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  425. package/contracts/registry/ReleaseRegistry.sol +491 -0
  426. package/contracts/registry/ServiceAuthorizationV3.sol +198 -0
  427. package/contracts/registry/TokenRegistry.sol +261 -57
  428. package/contracts/shared/Component.sol +268 -0
  429. package/contracts/shared/ComponentService.sol +641 -0
  430. package/contracts/shared/ComponentServiceManager.sol +38 -0
  431. package/contracts/shared/ComponentVerifyingService.sol +116 -0
  432. package/contracts/shared/ContractLib.sol +38 -0
  433. package/contracts/shared/IComponent.sol +70 -0
  434. package/contracts/shared/IComponentService.sol +108 -0
  435. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  436. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  437. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  438. package/contracts/shared/INftOwnable.sol +13 -12
  439. package/contracts/shared/IPolicyHolder.sol +35 -0
  440. package/contracts/shared/IRegisterable.sol +4 -6
  441. package/contracts/shared/IRegistryLinked.sol +11 -0
  442. package/contracts/shared/IService.sol +16 -6
  443. package/contracts/shared/InitializableCustom.sol +177 -0
  444. package/contracts/shared/InitializableERC165.sol +27 -0
  445. package/contracts/shared/InstanceLinkedComponent.sol +171 -0
  446. package/contracts/shared/KeyValueStore.sol +131 -0
  447. package/contracts/shared/Lifecycle.sol +77 -0
  448. package/contracts/shared/NftIdSet.sol +65 -0
  449. package/contracts/shared/NftOwnable.sol +59 -86
  450. package/contracts/shared/PolicyHolder.sol +62 -0
  451. package/contracts/shared/Registerable.sol +23 -38
  452. package/contracts/shared/RegistryLinked.sol +44 -0
  453. package/contracts/shared/Service.sol +62 -30
  454. package/contracts/shared/TokenHandler.sol +122 -10
  455. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  456. package/contracts/staking/IStaking.sol +168 -0
  457. package/contracts/staking/IStakingService.sol +160 -0
  458. package/contracts/staking/StakeManagerLib.sol +224 -0
  459. package/contracts/staking/Staking.sol +498 -0
  460. package/contracts/staking/StakingLifecycle.sol +23 -0
  461. package/contracts/staking/StakingManager.sol +52 -0
  462. package/contracts/staking/StakingReader.sol +183 -0
  463. package/contracts/staking/StakingService.sol +407 -0
  464. package/contracts/staking/StakingServiceManager.sol +44 -0
  465. package/contracts/staking/StakingStore.sol +605 -0
  466. package/contracts/staking/TargetManagerLib.sol +211 -0
  467. package/contracts/{types → type}/AddressSet.sol +1 -1
  468. package/contracts/type/Amount.sol +150 -0
  469. package/contracts/{types → type}/Blocknumber.sol +27 -3
  470. package/contracts/type/ClaimId.sol +80 -0
  471. package/contracts/{types → type}/DistributorType.sol +2 -2
  472. package/contracts/{types → type}/Fee.sol +33 -23
  473. package/contracts/{types → type}/NftId.sol +22 -15
  474. package/contracts/type/NftIdSet.sol +62 -0
  475. package/contracts/type/ObjectType.sol +275 -0
  476. package/contracts/type/PayoutId.sol +82 -0
  477. package/contracts/{types → type}/Referral.sol +6 -1
  478. package/contracts/type/RequestId.sol +75 -0
  479. package/contracts/{types → type}/RiskId.sol +16 -2
  480. package/contracts/type/RoleId.sol +174 -0
  481. package/contracts/type/Seconds.sol +101 -0
  482. package/contracts/type/Selector.sol +102 -0
  483. package/contracts/{types → type}/StateId.sol +35 -4
  484. package/contracts/type/String.sol +53 -0
  485. package/contracts/{types → type}/Timestamp.sol +34 -15
  486. package/contracts/{types → type}/UFixed.sol +39 -9
  487. package/contracts/{types → type}/Version.sol +5 -2
  488. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  489. package/contracts/upgradeability/ProxyManager.sol +231 -0
  490. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  491. package/contracts/upgradeability/Versionable.sol +59 -0
  492. package/package.json +10 -7
  493. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  494. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  495. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  496. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  497. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  498. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  499. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  500. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  501. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  502. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  503. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  504. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  505. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  506. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -787
  507. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  508. package/artifacts/contracts/components/Product.sol/Product.json +0 -729
  509. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  511. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  513. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  515. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  517. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  519. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  521. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  523. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  525. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  526. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  527. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  528. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  529. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  530. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  531. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  532. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  533. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  534. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  536. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  537. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  538. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  539. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  540. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  541. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  542. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  543. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  544. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  545. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  547. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  548. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  549. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  550. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  551. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  553. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  555. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  556. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  557. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  558. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  559. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  560. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  561. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  562. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  563. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  566. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  568. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  570. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
  576. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
  578. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  580. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  582. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  583. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  584. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  585. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  586. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  587. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  588. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  589. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  590. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  591. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  592. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  593. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  594. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  595. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  596. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  597. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  598. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  599. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  601. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  603. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  605. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  607. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  609. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  610. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  611. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  612. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  613. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  615. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  617. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  619. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  621. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  622. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  623. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  625. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  626. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  627. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  629. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  631. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  633. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  635. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  637. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  640. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  642. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  644. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  646. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  648. package/contracts/components/BaseComponent.sol +0 -91
  649. package/contracts/components/Distribution.sol +0 -163
  650. package/contracts/components/IBaseComponent.sol +0 -25
  651. package/contracts/components/IDistributionComponent.sol +0 -44
  652. package/contracts/components/IPoolComponent.sol +0 -62
  653. package/contracts/components/IProductComponent.sol +0 -35
  654. package/contracts/components/Pool.sol +0 -247
  655. package/contracts/components/Product.sol +0 -289
  656. package/contracts/experiment/cloning/Cloner.sol +0 -47
  657. package/contracts/experiment/errors/Require.sol +0 -38
  658. package/contracts/experiment/errors/Revert.sol +0 -44
  659. package/contracts/experiment/inheritance/A.sol +0 -53
  660. package/contracts/experiment/inheritance/B.sol +0 -28
  661. package/contracts/experiment/inheritance/C.sol +0 -34
  662. package/contracts/experiment/inheritance/IA.sol +0 -13
  663. package/contracts/experiment/inheritance/IB.sol +0 -10
  664. package/contracts/experiment/inheritance/IC.sol +0 -12
  665. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  666. package/contracts/experiment/statemachine/ISM.sol +0 -25
  667. package/contracts/experiment/statemachine/SM.sol +0 -57
  668. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  669. package/contracts/experiment/types/TypeA.sol +0 -47
  670. package/contracts/experiment/types/TypeB.sol +0 -29
  671. package/contracts/instance/AccessManagedSimple.sol +0 -115
  672. package/contracts/instance/AccessManagerSimple.sol +0 -692
  673. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  674. package/contracts/instance/InstanceAccessManager.sol +0 -288
  675. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  676. package/contracts/instance/base/IInstanceBase.sol +0 -23
  677. package/contracts/instance/base/KeyValueStore.sol +0 -172
  678. package/contracts/instance/base/Lifecycle.sol +0 -100
  679. package/contracts/instance/module/ISetup.sol +0 -47
  680. package/contracts/instance/module/ITreasury.sol +0 -23
  681. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  682. package/contracts/instance/service/DistributionService.sol +0 -88
  683. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  684. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  685. package/contracts/instance/service/IDistributionService.sol +0 -12
  686. package/contracts/instance/service/IPoolService.sol +0 -43
  687. package/contracts/instance/service/IProductService.sol +0 -110
  688. package/contracts/instance/service/PoolService.sol +0 -204
  689. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  690. package/contracts/instance/service/ProductService.sol +0 -561
  691. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  692. package/contracts/shared/ContractDeployerLib.sol +0 -72
  693. package/contracts/shared/ERC165.sol +0 -25
  694. package/contracts/shared/ProxyManager.sol +0 -94
  695. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  696. package/contracts/shared/Versionable.sol +0 -147
  697. package/contracts/test/TestFee.sol +0 -25
  698. package/contracts/test/TestRegisterable.sol +0 -18
  699. package/contracts/test/TestRoleId.sol +0 -14
  700. package/contracts/test/TestService.sol +0 -24
  701. package/contracts/test/TestToken.sol +0 -26
  702. package/contracts/test/TestVersion.sol +0 -44
  703. package/contracts/test/TestVersionable.sol +0 -17
  704. package/contracts/types/ChainId.sol +0 -38
  705. package/contracts/types/NftIdSet.sol +0 -60
  706. package/contracts/types/NumberId.sol +0 -52
  707. package/contracts/types/ObjectType.sol +0 -152
  708. package/contracts/types/RoleId.sol +0 -90
  709. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -15,10 +15,13 @@ using {
15
15
  lteUFixed as <=,
16
16
  eqUFixed as ==,
17
17
  neUFixed as !=,
18
+ UFixedLib.gt,
19
+ UFixedLib.gtz,
18
20
  UFixedLib.toInt,
19
- UFixedLib.gtz
21
+ UFixedLib.toInt1000
20
22
  } for UFixed global;
21
23
 
24
+ // TODO move to UFixedLib and rename to zero()
22
25
  function zeroUFixed() pure returns (UFixed zero) {
23
26
  return UFixed.wrap(0);
24
27
  }
@@ -28,7 +31,9 @@ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
28
31
  }
29
32
 
30
33
  function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
31
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
34
+ if (a < b) {
35
+ revert UFixedLib.UFixedLibNegativeResult();
36
+ }
32
37
  return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
33
38
  }
34
39
 
@@ -38,8 +43,10 @@ function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
38
43
  }
39
44
 
40
45
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
41
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
42
-
46
+ if (UFixed.unwrap(b) == 0) {
47
+ revert UFixedLib.UFixedLibDivisionByZero();
48
+ }
49
+
43
50
  return
44
51
  UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
45
52
  }
@@ -87,6 +94,8 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
87
94
  /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
88
95
  library MathLib {
89
96
 
97
+ error MathLigMulDivOverflow();
98
+
90
99
  enum Rounding {
91
100
  Down, // Toward negative infinity
92
101
  Up, // Toward infinity
@@ -120,8 +129,10 @@ library MathLib {
120
129
  }
121
130
 
122
131
  // Make sure the result is less than 2^256. Also prevents denominator == 0.
123
- require(denominator > prod1, "Math: mulDiv overflow");
124
-
132
+ if (denominator <= prod1) {
133
+ revert MathLigMulDivOverflow();
134
+ }
135
+
125
136
  ///////////////////////////////////////////////
126
137
  // 512 by 256 division.
127
138
  ///////////////////////////////////////////////
@@ -193,6 +204,12 @@ library MathLib {
193
204
  }
194
205
 
195
206
  library UFixedLib {
207
+ error UFixedLibNegativeResult();
208
+ error UFixedLibDivisionByZero();
209
+
210
+ error UFixedLibExponentTooSmall(int8 exp);
211
+ error UFixedLibExponentTooLarge(int8 exp);
212
+
196
213
  int8 public constant EXP = 18;
197
214
  uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
198
215
  uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
@@ -219,9 +236,13 @@ library UFixedLib {
219
236
 
220
237
  /// @dev Converts the uint256 to a UFixed with given exponent.
221
238
  function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
222
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
223
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
224
-
239
+ if (EXP + exp < 0) {
240
+ revert UFixedLibExponentTooSmall(exp);
241
+ }
242
+ if (EXP + exp > 64) {
243
+ revert UFixedLibExponentTooLarge(exp);
244
+ }
245
+
225
246
  return UFixed.wrap(a * 10 ** uint8(EXP + exp));
226
247
  }
227
248
 
@@ -235,6 +256,11 @@ library UFixedLib {
235
256
  return toIntWithRounding(a, ROUNDING_HALF_UP());
236
257
  }
237
258
 
259
+ /// @dev Converts a UFixed to a uint256.
260
+ function toInt1000(UFixed a) public pure returns (uint256) {
261
+ return toIntWithRounding(toUFixed(1000) * a, ROUNDING_HALF_UP());
262
+ }
263
+
238
264
  /// @dev Converts a UFixed to a uint256 with given rounding mode.
239
265
  function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
240
266
  if (rounding == ROUNDING_HALF_UP()) {
@@ -318,6 +344,10 @@ library UFixedLib {
318
344
  return UFixed.wrap(0);
319
345
  }
320
346
 
347
+ function one() public pure returns (UFixed) {
348
+ return UFixed.wrap(MULTIPLIER);
349
+ }
350
+
321
351
  /// @dev return the absolute delta between two UFixed numbers
322
352
  function delta(UFixed a, UFixed b) public pure returns (UFixed) {
323
353
  return deltaUFixed(a, b);
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  type VersionPart is uint8;
5
5
 
@@ -7,6 +7,7 @@ using {
7
7
  versionPartGt as >,
8
8
  versionPartEq as ==,
9
9
  versionPartNe as !=,
10
+ VersionPartLib.eqz,
10
11
  VersionPartLib.toInt
11
12
  }
12
13
  for VersionPart global;
@@ -16,7 +17,8 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) {
16
17
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
17
18
 
18
19
  library VersionPartLib {
19
- function toInt(VersionPart a) external pure returns(uint) { return VersionPart.unwrap(a); }
20
+ function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
21
+ function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
20
22
  function toVersionPart(uint256 a) external pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
21
23
  }
22
24
 
@@ -101,6 +103,7 @@ library VersionLib {
101
103
  return Version.wrap(uint24(versionNumber));
102
104
  }
103
105
 
106
+ // TODO rename to zero()
104
107
  function zeroVersion() external pure returns(Version) {
105
108
  return Version.wrap(0);
106
109
  }
@@ -1,10 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Blocknumber} from "../types/Blocknumber.sol";
5
- import {Timestamp} from "../types/Timestamp.sol";
6
- import {Version} from "../types/Version.sol";
7
-
4
+ import {Version} from "../type/Version.sol";
8
5
 
9
6
  /// IMPORTANT
10
7
  // Upgradeable contract MUST:
@@ -14,7 +11,7 @@ import {Version} from "../types/Version.sol";
14
11
  // 4) implement internal _upgrade() function with onlyInitializing modifier (1st version MUST revert)
15
12
  // 5) have onlyInitialising modifier for each function callable inside _initialize()/_upgrade() (MUST use different functions for initialization/upgrade and normal operations)
16
13
  // 6) use default empty constructor -> _disableInitializer() is called from Versionable contructor
17
- // 7) use namespace storage
14
+ // 7) use namespace storage (should this be needed)
18
15
  // 8) since now inheritance is used for upgradability, contract MUST BE inherited ONLY by the next version
19
16
  // Upgradeable contract SHOULD:
20
17
  // 9) define all non private methods as virtual (in order to be able to upgrade them latter)
@@ -22,48 +19,29 @@ import {Version} from "../types/Version.sol";
22
19
  // in some cases this ok but not in the others...
23
20
  //
24
21
  // IMPORTANT
25
- // Each version MUST:
22
+ // If introducting/amending storage related to Versionable version MUST:
26
23
  // 1) define namespace storage struct if accessing storage
27
24
  // - DO NOT use structs inside, except
28
25
  // - CAN use structs ONLY inside mappings
29
26
  // 2) ALWAYS define private getter if accessing storage
30
27
  // - MUST use default implementation, CAN change ONLY return type
31
- // - MUST use the same "LOCATION_V1"
32
28
 
33
29
  interface IVersionable {
34
30
 
35
- struct VersionInfo {
36
- Version version;
37
- address implementation;
38
- address activatedBy;
39
- Timestamp activatedAt;
40
- Blocknumber activatedIn;
41
- }
42
-
43
- event LogVersionableInitialized(Version version, address implementation, address activatedBy);
44
-
45
- // TODO uncomment when all implementations are ready
46
31
  /**
47
32
  * @dev IMPORTANT
48
33
  * implementation MUST be guarded by initializer modifier
49
- * implementation MUST call internal function Versionable._updateVersionHistory
50
34
  * new version MUST inherit from previous version
51
35
  */
52
- function initialize(address implementation, address activatedBy, bytes memory activationData) external;
36
+ function initializeVersionable(address activatedBy, bytes memory activationData) external;
53
37
 
54
38
  /**
55
39
  * @dev
56
40
  * implementation MUST be guarded by reinitializer(version().toUint64()) modifier
57
- * implementation MUST call internal function Versionable._updateVersionHistory
58
41
  * new version MUST inherit from previous version
59
42
  * the first verion MUST revert
60
43
  */
61
- function upgrade(address implementation, address activatedBy, bytes memory upgradeData) external;
62
-
63
- /**
64
- * @dev returns true if the specified version has been activated for the current contract
65
- */
66
- function isInitialized(Version version) external view returns(bool);
44
+ function upgradeVersionable(bytes memory upgradeData) external;
67
45
 
68
46
  /**
69
47
  * @dev returns version of this contract
@@ -72,25 +50,4 @@ interface IVersionable {
72
50
  */
73
51
  function getVersion() external pure returns(Version);
74
52
 
75
- /**
76
- * @dev returns the number of all deployed versions of this contract
77
- */
78
- function getVersionCount() external view returns(uint256 numberOfVersions);
79
-
80
- /**
81
- * @dev returns the i-th (index) version of this contract
82
- */
83
- function getVersion(uint256 index) external view returns(Version version);
84
-
85
- /**
86
- * @dev returns the i-th (index) version info of this contract
87
- */
88
- function getVersionInfo(Version version) external view returns(VersionInfo memory versionInfo);
89
-
90
- // TODO make sure it is needed here
91
- /**
92
- * @dev returns currently active version
93
- */
94
- function getInitializedVersion() external view returns(uint64);
95
-
96
53
  }
@@ -0,0 +1,231 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
5
+ import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
6
+
7
+ import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
8
+ import {IVersionable} from "./IVersionable.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {NftOwnable} from "../shared/NftOwnable.sol";
11
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
12
+ import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
13
+ import {Version, VersionLib} from "../type/Version.sol";
14
+
15
+ /// @dev manages proxy deployments for upgradable contracs of type IVersionable
16
+ contract ProxyManager is
17
+ NftOwnable
18
+ {
19
+
20
+ struct VersionInfo {
21
+ Version version;
22
+ address implementation;
23
+ address activatedBy;
24
+ Timestamp activatedAt;
25
+ Blocknumber activatedIn;
26
+ }
27
+
28
+ event LogProxyManagerVersionableDeployed(address indexed proxy, address initialImplementation);
29
+ event LogProxyManagerVersionableUpgraded(address indexed proxy, address upgradedImplementation);
30
+
31
+ error ErrorProxyManagerAlreadyDeployed();
32
+ error ErrorProxyManagerNotYetDeployed();
33
+
34
+ error ErrorProxyManagerZeroVersion();
35
+ error ErrorProxyManagerNextVersionNotIncreasing(Version nextVersion);
36
+
37
+ UpgradableProxyWithAdmin internal _proxy;
38
+
39
+ // state to keep version history
40
+ mapping(Version version => VersionInfo info) _versionHistory;
41
+ Version [] _versions;
42
+
43
+ /// @dev convencience initializer
44
+ function initialize(
45
+ address registry,
46
+ address implementation,
47
+ bytes memory data,
48
+ bytes32 salt
49
+ )
50
+ public
51
+ initializer()
52
+ returns (IVersionable versionable)
53
+ {
54
+ versionable = deployDetermenistic(
55
+ registry,
56
+ implementation,
57
+ data,
58
+ salt);
59
+ }
60
+
61
+ /// @dev deploy initial contract
62
+ function deploy(
63
+ address registry,
64
+ address initialImplementation,
65
+ bytes memory initializationData
66
+ )
67
+ public
68
+ virtual
69
+ onlyInitializing()
70
+ returns (IVersionable versionable)
71
+ {
72
+ (
73
+ address currentProxyOwner,
74
+ address initialProxyAdminOwner
75
+ ) = _preDeployChecksAndSetup(registry);
76
+
77
+ _proxy = new UpgradableProxyWithAdmin(
78
+ initialImplementation,
79
+ initialProxyAdminOwner,
80
+ getDeployData(currentProxyOwner, initializationData)
81
+ );
82
+
83
+ versionable = _updateVersionHistory(
84
+ initialImplementation,
85
+ currentProxyOwner);
86
+
87
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
88
+ }
89
+
90
+ function deployDetermenistic(
91
+ address registry,
92
+ address initialImplementation,
93
+ bytes memory initializationData,
94
+ bytes32 salt
95
+ )
96
+ public
97
+ virtual
98
+ onlyInitializing()
99
+ returns (IVersionable versionable)
100
+ {
101
+ (
102
+ address currentProxyOwner,
103
+ address initialProxyAdminOwner
104
+ ) = _preDeployChecksAndSetup(registry);
105
+
106
+ _proxy = new UpgradableProxyWithAdmin{salt: salt}(
107
+ initialImplementation,
108
+ initialProxyAdminOwner,
109
+ getDeployData(currentProxyOwner, initializationData)
110
+ );
111
+
112
+ versionable = _updateVersionHistory(
113
+ initialImplementation,
114
+ currentProxyOwner);
115
+
116
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
117
+ }
118
+
119
+ /// @dev upgrade existing contract
120
+ function upgrade(address newImplementation, bytes memory upgradeData)
121
+ public
122
+ virtual
123
+ onlyOwner()
124
+ returns (IVersionable versionable)
125
+ {
126
+ if (_versions.length == 0) {
127
+ revert ErrorProxyManagerNotYetDeployed();
128
+ }
129
+
130
+ address currentProxyOwner = getOwner();
131
+ ProxyAdmin proxyAdmin = getProxy().getProxyAdmin();
132
+ ITransparentUpgradeableProxy proxy = ITransparentUpgradeableProxy(address(_proxy));
133
+
134
+ proxyAdmin.upgradeAndCall(
135
+ proxy,
136
+ newImplementation,
137
+ getUpgradeData(upgradeData));
138
+
139
+ versionable = _updateVersionHistory(
140
+ newImplementation,
141
+ currentProxyOwner);
142
+
143
+ emit LogProxyManagerVersionableUpgraded(address(versionable), newImplementation);
144
+
145
+ }
146
+
147
+ function linkToProxy() public returns (NftId) {
148
+ return _linkToNftOwnable(address(_proxy));
149
+ }
150
+
151
+ function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
152
+ return abi.encodeWithSelector(
153
+ IVersionable.initializeVersionable.selector,
154
+ proxyOwner,
155
+ deployData);
156
+ }
157
+
158
+ function getUpgradeData(bytes memory upgradeData) public pure returns (bytes memory data) {
159
+ return abi.encodeWithSelector(
160
+ IVersionable.upgradeVersionable.selector,
161
+ upgradeData);
162
+ }
163
+
164
+ function getProxy() public view returns (UpgradableProxyWithAdmin) {
165
+ return _proxy;
166
+ }
167
+
168
+ function getVersion() external view virtual returns(Version) {
169
+ return IVersionable(address(_proxy)).getVersion();
170
+ }
171
+
172
+ function getVersionCount() external view returns(uint256) {
173
+ return _versions.length;
174
+ }
175
+
176
+ function getVersion(uint256 idx) external view returns(Version) {
177
+ return _versions[idx];
178
+ }
179
+
180
+ function getVersionInfo(Version _version) external view returns(VersionInfo memory) {
181
+ return _versionHistory[_version];
182
+ }
183
+
184
+ function _preDeployChecksAndSetup(address registry)
185
+ private
186
+ returns (
187
+ address currentProxyOwner,
188
+ address initialProxyAdminOwner
189
+ )
190
+ {
191
+ if (_versions.length > 0) {
192
+ revert ErrorProxyManagerAlreadyDeployed();
193
+ }
194
+
195
+ _initializeNftOwnable(msg.sender, registry);
196
+
197
+ currentProxyOwner = getOwner(); // used by implementation
198
+ initialProxyAdminOwner = address(this); // used by proxy
199
+ }
200
+
201
+ function _updateVersionHistory(
202
+ address implementation,
203
+ address activatedBy
204
+ )
205
+ private
206
+ returns (IVersionable versionable)
207
+ {
208
+ versionable = IVersionable(address(_proxy));
209
+ Version newVersion = versionable.getVersion();
210
+
211
+ if(newVersion == VersionLib.zeroVersion()) {
212
+ revert ErrorProxyManagerZeroVersion();
213
+ }
214
+
215
+ if(_versions.length > 0) {
216
+ if(newVersion.toInt() <= _versions[_versions.length-1].toInt()) {
217
+ revert ErrorProxyManagerNextVersionNotIncreasing(newVersion);
218
+ }
219
+ }
220
+
221
+ // update version history
222
+ _versions.push(newVersion);
223
+ _versionHistory[newVersion] = VersionInfo(
224
+ newVersion,
225
+ implementation,
226
+ activatedBy,
227
+ TimestampLib.blockTimestamp(),
228
+ blockNumber()
229
+ );
230
+ }
231
+ }
@@ -2,9 +2,7 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
5
- import {TransparentUpgradeableProxy, ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
6
-
7
- import {IVersionable} from "./IVersionable.sol";
5
+ import {TransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
8
6
 
9
7
  contract UpgradableProxyWithAdmin is TransparentUpgradeableProxy {
10
8
 
@@ -0,0 +1,59 @@
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 {IVersionable} from "./IVersionable.sol";
7
+ import {Version, VersionLib} from "../type/Version.sol";
8
+
9
+
10
+ abstract contract Versionable is
11
+ Initializable,
12
+ IVersionable
13
+ {
14
+ constructor() {
15
+ _disableInitializers();
16
+ }
17
+
18
+ function initializeVersionable(
19
+ address activatedBy,
20
+ bytes memory data
21
+ )
22
+ public
23
+ initializer()
24
+ {
25
+ _initialize(activatedBy, data);
26
+ }
27
+
28
+ function upgradeVersionable(
29
+ bytes memory data
30
+ )
31
+ external
32
+ reinitializer(VersionLib.toUint64(getVersion()))
33
+ {
34
+ _upgrade(data);
35
+ }
36
+
37
+ function getVersion() public pure virtual returns(Version);
38
+
39
+ // IMPORTANT each version must implement this function
40
+ // each implementation MUST use onlyInitialising modifier
41
+ // each implementation MUST call intializers of all base contracts...
42
+ function _initialize(address owner, bytes memory data)
43
+ internal
44
+ onlyInitializing()
45
+ virtual
46
+ {
47
+ revert();
48
+ }
49
+
50
+ // IMPORTANT each version except version "1" must implement this function
51
+ // each implementation MUST use onlyInitialising modifier
52
+ function _upgrade(bytes memory data)
53
+ internal
54
+ onlyInitializing
55
+ virtual
56
+ {
57
+ revert();
58
+ }
59
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-accfb48-991",
3
+ "version": "0.0.2-ad36a6a-080",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -30,10 +30,11 @@
30
30
  "homepage": "https://github.com/etherisc/gif-next#readme",
31
31
  "devDependencies": {
32
32
  "@nomicfoundation/hardhat-foundry": "^1.1.1",
33
- "@nomicfoundation/hardhat-toolbox": "^3.0.0",
34
- "@nomicfoundation/hardhat-verify": "^1.1.1",
35
- "@typescript-eslint/eslint-plugin": "^6.7.2",
36
- "@typescript-eslint/parser": "^6.7.2",
33
+ "@nomicfoundation/hardhat-toolbox": "^5.0.0",
34
+ "@nomicfoundation/hardhat-verify": "^2.0.1",
35
+ "@typescript-eslint/eslint-plugin": "^7.1.0",
36
+ "@typescript-eslint/parser": "^7.1.0",
37
+ "antlr4ng-cli": "^2.0.0",
37
38
  "dotenv": "^16.3.1",
38
39
  "eslint": "^8.50.0",
39
40
  "hardhat": "^2.17.2",
@@ -42,9 +43,11 @@
42
43
  "typescript": "^5"
43
44
  },
44
45
  "dependencies": {
45
- "@openzeppelin/contracts": "5.0.0",
46
- "@openzeppelin/contracts-upgradeable": "5.0.0",
46
+ "@openzeppelin/contracts": "5.0.2",
47
+ "@openzeppelin/contracts-upgradeable": "5.0.2",
48
+ "@openzeppelin/upgrades-core": "^1.34.1",
47
49
  "abi-coder": "^5.0.0",
50
+ "antlr4ng": "^3.0.4",
48
51
  "ethers": "^6.7.1",
49
52
  "solidity-docgen": "^0.6.0-beta.36",
50
53
  "winston": "^3.10.0"
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/f10f3aeaf877c015583985ece5f2890b.json"
4
- }