@etherisc/gif-next 0.0.2-79292f9-089 → 0.0.2-79a4d57-521

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 (501) hide show
  1. package/README.md +28 -7
  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 +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +203 -77
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +200 -16
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +142 -44
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +63 -5
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +179 -346
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +119 -262
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +241 -242
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +138 -120
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +119 -110
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +127 -33
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  49. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +158 -57
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +194 -154
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +433 -143
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +955 -264
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +107 -97
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +688 -439
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +138 -305
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +113 -104
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +114 -257
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +127 -93
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +131 -274
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +158 -363
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -129
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +84 -111
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -135
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +306 -294
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +131 -285
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +474 -525
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +156 -106
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +131 -170
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +101 -95
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +249 -331
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +407 -242
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -119
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +293 -17
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +281 -64
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +246 -176
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +405 -267
  165. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +150 -108
  167. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  168. package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
  169. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +125 -127
  171. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  172. package/artifacts/contracts/product/Product.sol/Product.json +247 -329
  173. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  174. package/artifacts/contracts/product/RiskService.sol/RiskService.json +114 -172
  175. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +112 -90
  177. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  178. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  179. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +119 -19
  181. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
  183. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  187. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.json +164 -56
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +326 -259
  191. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
  193. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -85
  195. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  197. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  199. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +424 -224
  201. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  203. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  205. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  206. package/artifacts/contracts/shared/Component.sol/Component.json +92 -217
  207. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +501 -610
  209. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +141 -125
  211. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  212. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  215. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  222. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -65
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  224. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  226. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +113 -104
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  228. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  229. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  230. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  231. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
  237. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  239. package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  241. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  243. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +113 -256
  244. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  245. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  246. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  247. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  248. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  249. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  250. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  252. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  253. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  254. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
  256. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  257. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  258. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  259. package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  262. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  263. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  264. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  265. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  266. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +137 -102
  268. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  269. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +77 -16
  270. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +84 -31
  272. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  273. package/artifacts/contracts/staking/Staking.sol/Staking.json +216 -308
  274. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  276. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +128 -101
  278. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  280. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +122 -164
  282. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  283. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +104 -90
  284. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  285. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
  286. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  287. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
  288. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  289. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/Amount.sol/AmountLib.json +33 -9
  291. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  293. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  295. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  299. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  301. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  305. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  311. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  313. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  315. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +118 -5
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
  320. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  324. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  326. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
  331. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  332. package/artifacts/contracts/type/Version.sol/VersionLib.json +3 -22
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  334. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +45 -13
  335. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +76 -75
  338. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  340. package/contracts/accounting/AccountingService.sol +262 -0
  341. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  342. package/contracts/accounting/IAccountingService.sol +45 -0
  343. package/contracts/authorization/AccessAdmin.sol +232 -133
  344. package/contracts/authorization/AccessManagerCloneable.sol +136 -3
  345. package/contracts/authorization/Authorization.sol +322 -205
  346. package/contracts/authorization/IAccess.sol +1 -0
  347. package/contracts/authorization/IAccessAdmin.sol +17 -9
  348. package/contracts/authorization/IAuthorization.sol +27 -7
  349. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  350. package/contracts/authorization/ServiceAuthorization.sol +25 -10
  351. package/contracts/distribution/BasicDistribution.sol +8 -7
  352. package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
  353. package/contracts/distribution/Distribution.sol +33 -41
  354. package/contracts/distribution/DistributionService.sol +111 -76
  355. package/contracts/distribution/DistributionServiceManager.sol +6 -6
  356. package/contracts/distribution/IDistributionComponent.sol +1 -1
  357. package/contracts/distribution/IDistributionService.sol +13 -8
  358. package/contracts/examples/fire/DamageLevel.sol +59 -0
  359. package/contracts/examples/fire/FirePool.sol +90 -0
  360. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  361. package/contracts/examples/fire/FireProduct.sol +438 -0
  362. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  363. package/contracts/examples/fire/FireUSD.sol +26 -0
  364. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  365. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  366. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  367. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  368. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  369. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  370. package/contracts/instance/BundleSet.sol +42 -38
  371. package/contracts/instance/IInstance.sol +17 -10
  372. package/contracts/instance/IInstanceService.sol +9 -29
  373. package/contracts/instance/Instance.sol +53 -35
  374. package/contracts/instance/InstanceAdmin.sol +257 -100
  375. package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
  376. package/contracts/instance/InstanceReader.sol +256 -39
  377. package/contracts/instance/InstanceService.sol +95 -157
  378. package/contracts/instance/InstanceServiceManager.sol +6 -7
  379. package/contracts/instance/InstanceStore.sol +23 -2
  380. package/contracts/instance/RiskSet.sol +118 -0
  381. package/contracts/instance/base/ObjectCounter.sol +1 -2
  382. package/contracts/instance/base/ObjectLifecycle.sol +10 -2
  383. package/contracts/instance/base/ObjectSet.sol +31 -33
  384. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  385. package/contracts/instance/module/IComponents.sol +13 -8
  386. package/contracts/instance/module/IPolicy.sol +25 -24
  387. package/contracts/instance/module/IRisk.sol +3 -0
  388. package/contracts/oracle/BasicOracle.sol +0 -1
  389. package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
  390. package/contracts/oracle/IOracleService.sol +2 -1
  391. package/contracts/oracle/Oracle.sol +6 -17
  392. package/contracts/oracle/OracleService.sol +113 -82
  393. package/contracts/oracle/OracleServiceManager.sol +6 -6
  394. package/contracts/pool/BasicPool.sol +33 -24
  395. package/contracts/pool/BasicPoolAuthorization.sol +27 -9
  396. package/contracts/pool/BundleService.sol +93 -134
  397. package/contracts/pool/BundleServiceManager.sol +6 -6
  398. package/contracts/pool/IBundleService.sol +15 -34
  399. package/contracts/pool/IPoolComponent.sol +19 -15
  400. package/contracts/pool/IPoolService.sol +73 -71
  401. package/contracts/pool/Pool.sol +139 -122
  402. package/contracts/pool/PoolLib.sol +216 -0
  403. package/contracts/pool/PoolService.sol +489 -273
  404. package/contracts/pool/PoolServiceManager.sol +4 -4
  405. package/contracts/product/ApplicationService.sol +36 -27
  406. package/contracts/product/ApplicationServiceManager.sol +4 -4
  407. package/contracts/product/BasicProduct.sol +10 -12
  408. package/contracts/product/BasicProductAuthorization.sol +24 -11
  409. package/contracts/product/ClaimService.sol +366 -150
  410. package/contracts/product/ClaimServiceManager.sol +4 -4
  411. package/contracts/product/IApplicationService.sol +5 -2
  412. package/contracts/product/IClaimService.sol +43 -8
  413. package/contracts/product/IPolicyService.sol +41 -28
  414. package/contracts/product/IPricingService.sol +10 -10
  415. package/contracts/product/IProductComponent.sol +27 -5
  416. package/contracts/product/PolicyService.sol +456 -274
  417. package/contracts/product/PolicyServiceManager.sol +4 -4
  418. package/contracts/product/PricingService.sol +62 -62
  419. package/contracts/product/PricingServiceManager.sol +4 -4
  420. package/contracts/product/Product.sol +149 -82
  421. package/contracts/product/RiskService.sol +77 -29
  422. package/contracts/product/RiskServiceManager.sol +4 -4
  423. package/contracts/registry/ChainNft.sol +10 -11
  424. package/contracts/registry/IRegistry.sol +18 -20
  425. package/contracts/registry/IRegistryService.sol +5 -12
  426. package/contracts/registry/IRelease.sol +26 -0
  427. package/contracts/registry/ITransferInterceptor.sol +1 -2
  428. package/contracts/registry/Registry.sol +42 -17
  429. package/contracts/registry/RegistryAdmin.sol +133 -243
  430. package/contracts/registry/RegistryService.sol +39 -49
  431. package/contracts/registry/RegistryServiceManager.sol +3 -3
  432. package/contracts/registry/ReleaseAdmin.sol +245 -0
  433. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  434. package/contracts/registry/ReleaseRegistry.sol +236 -263
  435. package/contracts/registry/ServiceAuthorizationV3.sol +98 -51
  436. package/contracts/registry/TokenRegistry.sol +6 -8
  437. package/contracts/shared/Component.sol +74 -115
  438. package/contracts/shared/ComponentService.sol +427 -376
  439. package/contracts/shared/ComponentServiceManager.sol +8 -5
  440. package/contracts/shared/ComponentVerifyingService.sol +28 -17
  441. package/contracts/shared/ContractLib.sol +253 -0
  442. package/contracts/shared/IComponent.sol +8 -17
  443. package/contracts/shared/IComponentService.sol +41 -37
  444. package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
  445. package/contracts/shared/ILifecycle.sol +3 -1
  446. package/contracts/shared/INftOwnable.sol +2 -0
  447. package/contracts/shared/IPolicyHolder.sol +12 -22
  448. package/contracts/shared/IRegisterable.sol +23 -1
  449. package/contracts/shared/IService.sol +3 -5
  450. package/contracts/shared/InitializableERC165.sol +2 -2
  451. package/contracts/shared/InstanceLinkedComponent.sol +73 -48
  452. package/contracts/shared/KeyValueStore.sol +1 -1
  453. package/contracts/shared/Lifecycle.sol +15 -4
  454. package/contracts/shared/NftOwnable.sol +29 -9
  455. package/contracts/shared/PolicyHolder.sol +15 -52
  456. package/contracts/shared/Registerable.sol +55 -21
  457. package/contracts/shared/RegistryLinked.sol +9 -14
  458. package/contracts/shared/Service.sol +15 -32
  459. package/contracts/shared/TokenHandler.sol +274 -72
  460. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  461. package/contracts/staking/IStaking.sol +7 -9
  462. package/contracts/staking/IStakingService.sol +8 -3
  463. package/contracts/staking/StakeManagerLib.sol +19 -1
  464. package/contracts/staking/Staking.sol +69 -40
  465. package/contracts/staking/StakingManager.sol +8 -6
  466. package/contracts/staking/StakingReader.sol +13 -6
  467. package/contracts/staking/StakingService.sol +47 -24
  468. package/contracts/staking/StakingServiceManager.sol +6 -5
  469. package/contracts/staking/TargetManagerLib.sol +7 -3
  470. package/contracts/type/Amount.sol +15 -0
  471. package/contracts/type/ClaimId.sol +6 -1
  472. package/contracts/type/Key32.sol +2 -2
  473. package/contracts/type/Key32Set.sol +62 -0
  474. package/contracts/type/NftId.sol +7 -0
  475. package/contracts/type/ObjectType.sol +52 -20
  476. package/contracts/type/PayoutId.sol +10 -10
  477. package/contracts/type/RiskId.sol +35 -4
  478. package/contracts/type/RoleId.sol +23 -15
  479. package/contracts/type/Seconds.sol +8 -0
  480. package/contracts/type/Selector.sol +5 -0
  481. package/contracts/type/StateId.sol +12 -2
  482. package/contracts/type/Timestamp.sol +0 -5
  483. package/contracts/type/UFixed.sol +13 -119
  484. package/contracts/type/Version.sol +17 -10
  485. package/contracts/upgradeability/ProxyManager.sol +74 -40
  486. package/contracts/upgradeability/Versionable.sol +2 -2
  487. package/package.json +4 -3
  488. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  489. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  490. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  491. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  492. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  493. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  494. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  495. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  496. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  497. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  498. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  499. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  500. package/contracts/instance/module/IAccess.sol +0 -46
  501. package/contracts/shared/InitializableCustom.sol +0 -177
@@ -1,6 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
5
+
4
6
  /// @dev UFixed is a fixed point number with 18 decimals precision.
5
7
  type UFixed is uint256;
6
8
 
@@ -39,7 +41,7 @@ function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
39
41
 
40
42
  function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
41
43
  return
42
- UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
44
+ UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), UFixed.unwrap(b), 10 ** 18));
43
45
  }
44
46
 
45
47
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
@@ -48,7 +50,7 @@ function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
48
50
  }
49
51
 
50
52
  return
51
- UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
53
+ UFixed.wrap(Math.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
52
54
  }
53
55
 
54
56
  function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
@@ -91,118 +93,6 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
91
93
  return b - a;
92
94
  }
93
95
 
94
- /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
95
- library MathLib {
96
-
97
- error MathLigMulDivOverflow();
98
-
99
- enum Rounding {
100
- Down, // Toward negative infinity
101
- Up, // Toward infinity
102
- Zero // Toward zero
103
- }
104
-
105
- /**
106
- * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
107
- * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
108
- * with further edits by Uniswap Labs also under MIT license.
109
- */
110
- function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {
111
- unchecked {
112
- // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use
113
- // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256
114
- // variables such that product = prod1 * 2^256 + prod0.
115
- uint256 prod0; // Least significant 256 bits of the product
116
- uint256 prod1; // Most significant 256 bits of the product
117
- assembly {
118
- let mm := mulmod(x, y, not(0))
119
- prod0 := mul(x, y)
120
- prod1 := sub(sub(mm, prod0), lt(mm, prod0))
121
- }
122
-
123
- // Handle non-overflow cases, 256 by 256 division.
124
- if (prod1 == 0) {
125
- // Solidity will revert if denominator == 0, unlike the div opcode on its own.
126
- // The surrounding unchecked block does not change this fact.
127
- // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.
128
- return prod0 / denominator;
129
- }
130
-
131
- // Make sure the result is less than 2^256. Also prevents denominator == 0.
132
- if (denominator <= prod1) {
133
- revert MathLigMulDivOverflow();
134
- }
135
-
136
- ///////////////////////////////////////////////
137
- // 512 by 256 division.
138
- ///////////////////////////////////////////////
139
-
140
- // Make division exact by subtracting the remainder from [prod1 prod0].
141
- uint256 remainder;
142
- assembly {
143
- // Compute remainder using mulmod.
144
- remainder := mulmod(x, y, denominator)
145
-
146
- // Subtract 256 bit number from 512 bit number.
147
- prod1 := sub(prod1, gt(remainder, prod0))
148
- prod0 := sub(prod0, remainder)
149
- }
150
-
151
- // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.
152
- // See https://cs.stackexchange.com/q/138556/92363.
153
-
154
- // Does not overflow because the denominator cannot be zero at this stage in the function.
155
- uint256 twos = denominator & (~denominator + 1);
156
- assembly {
157
- // Divide denominator by twos.
158
- denominator := div(denominator, twos)
159
-
160
- // Divide [prod1 prod0] by twos.
161
- prod0 := div(prod0, twos)
162
-
163
- // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.
164
- twos := add(div(sub(0, twos), twos), 1)
165
- }
166
-
167
- // Shift in bits from prod1 into prod0.
168
- prod0 |= prod1 * twos;
169
-
170
- // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such
171
- // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for
172
- // four bits. That is, denominator * inv = 1 mod 2^4.
173
- uint256 inverse = (3 * denominator) ^ 2;
174
-
175
- // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works
176
- // in modular arithmetic, doubling the correct bits in each step.
177
- inverse *= 2 - denominator * inverse; // inverse mod 2^8
178
- inverse *= 2 - denominator * inverse; // inverse mod 2^16
179
- inverse *= 2 - denominator * inverse; // inverse mod 2^32
180
- inverse *= 2 - denominator * inverse; // inverse mod 2^64
181
- inverse *= 2 - denominator * inverse; // inverse mod 2^128
182
- inverse *= 2 - denominator * inverse; // inverse mod 2^256
183
-
184
- // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.
185
- // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is
186
- // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1
187
- // is no longer required.
188
- result = prod0 * inverse;
189
- return result;
190
- }
191
- }
192
-
193
- /**
194
- * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.
195
- */
196
- function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {
197
- uint256 result = mulDiv(x, y, denominator);
198
- if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
199
- result += 1;
200
- }
201
- return result;
202
- }
203
-
204
- }
205
-
206
96
  library UFixedLib {
207
97
  error UFixedLibNegativeResult();
208
98
  error UFixedLibDivisionByZero();
@@ -265,23 +155,23 @@ library UFixedLib {
265
155
  function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
266
156
  if (rounding == ROUNDING_HALF_UP()) {
267
157
  return
268
- MathLib.mulDiv(
158
+ Math.mulDiv(
269
159
  UFixed.unwrap(a) + MULTIPLIER_HALF,
270
160
  1,
271
161
  MULTIPLIER,
272
- MathLib.Rounding.Down
162
+ Math.Rounding.Floor
273
163
  );
274
164
  } else if (rounding == ROUNDING_DOWN()) {
275
165
  return
276
- MathLib.mulDiv(
166
+ Math.mulDiv(
277
167
  UFixed.unwrap(a),
278
168
  1,
279
169
  MULTIPLIER,
280
- MathLib.Rounding.Down
170
+ Math.Rounding.Floor
281
171
  );
282
172
  } else {
283
173
  return
284
- MathLib.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, MathLib.Rounding.Up);
174
+ Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Ceil);
285
175
  }
286
176
  }
287
177
 
@@ -344,6 +234,10 @@ library UFixedLib {
344
234
  return UFixed.wrap(0);
345
235
  }
346
236
 
237
+ function one() public pure returns (UFixed) {
238
+ return UFixed.wrap(MULTIPLIER);
239
+ }
240
+
347
241
  /// @dev return the absolute delta between two UFixed numbers
348
242
  function delta(UFixed a, UFixed b) public pure returns (UFixed) {
349
243
  return deltaUFixed(a, b);
@@ -8,7 +8,8 @@ using {
8
8
  versionPartEq as ==,
9
9
  versionPartNe as !=,
10
10
  VersionPartLib.eqz,
11
- VersionPartLib.toInt
11
+ VersionPartLib.toInt,
12
+ VersionPartLib.isValidRelease
12
13
  }
13
14
  for VersionPart global;
14
15
 
@@ -17,13 +18,17 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) {
17
18
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
18
19
 
19
20
  library VersionPartLib {
21
+ function releaseMin() public pure returns (VersionPart) { return toVersionPart(3); }
22
+ function releaseMax() public pure returns (VersionPart) { return toVersionPart(99); }
23
+
24
+ function isValidRelease(VersionPart release) external pure returns(bool) {
25
+ uint256 releaseInt = VersionPart.unwrap(release);
26
+ return 3 <= releaseInt && releaseInt <= 99;
27
+ }
28
+
20
29
  function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
21
30
  function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
22
- function toVersionPart(uint256 a) external pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
23
-
24
- function zero() external pure returns(VersionPart) {
25
- return VersionPart.wrap(0);
26
- }
31
+ function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
27
32
  }
28
33
 
29
34
  type Version is uint24; // contains major,minor,patch version parts
@@ -42,6 +47,7 @@ function versionGt(Version a, Version b) pure returns(bool isGreaterThan) { retu
42
47
  function versionEq(Version a, Version b) pure returns(bool isSame) { return Version.unwrap(a) == Version.unwrap(b); }
43
48
 
44
49
  library VersionLib {
50
+
45
51
  function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
46
52
 
47
53
  function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
@@ -79,9 +85,9 @@ library VersionLib {
79
85
  );
80
86
  }
81
87
 
82
- function toVersionPart(uint256 versionPart) external pure returns(VersionPart) {
83
- return VersionPart.wrap(uint8(versionPart));
84
- }
88
+ // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) {
89
+ // return VersionPart.wrap(uint8(versionPart));
90
+ // }
85
91
 
86
92
  function toVersion(
87
93
  uint256 major,
@@ -107,7 +113,8 @@ library VersionLib {
107
113
  return Version.wrap(uint24(versionNumber));
108
114
  }
109
115
 
110
- function zero() external pure returns(Version) {
116
+ // TODO rename to zero()
117
+ function zeroVersion() external pure returns(Version) {
111
118
  return Version.wrap(0);
112
119
  }
113
120
  }
@@ -28,7 +28,7 @@ contract ProxyManager is
28
28
  event LogProxyManagerVersionableDeployed(address indexed proxy, address initialImplementation);
29
29
  event LogProxyManagerVersionableUpgraded(address indexed proxy, address upgradedImplementation);
30
30
 
31
- error ErrorProxyManagerProxyAlreadyDeployed();
31
+ error ErrorProxyManagerAlreadyDeployed();
32
32
  error ErrorProxyManagerNotYetDeployed();
33
33
 
34
34
  error ErrorProxyManagerZeroVersion();
@@ -40,68 +40,80 @@ contract ProxyManager is
40
40
  mapping(Version version => VersionInfo info) _versionHistory;
41
41
  Version [] _versions;
42
42
 
43
- /// @dev only used to capture proxy owner
44
- constructor(address registry)
45
- {
46
- initializeProxyManager(registry);
47
- }
48
-
49
- function initializeProxyManager(address registry)
43
+ /// @dev convencience initializer
44
+ function initialize(
45
+ address registry,
46
+ address implementation,
47
+ bytes memory data,
48
+ bytes32 salt
49
+ )
50
50
  public
51
51
  initializer()
52
+ returns (IVersionable versionable)
52
53
  {
53
- initializeNftOwnable(msg.sender, registry);
54
+ versionable = deployDetermenistic(
55
+ registry,
56
+ implementation,
57
+ data,
58
+ salt);
54
59
  }
55
60
 
56
61
  /// @dev deploy initial contract
57
- function deploy(address initialImplementation, bytes memory initializationData)
62
+ function deploy(
63
+ address registry,
64
+ address initialImplementation,
65
+ bytes memory initializationData
66
+ )
58
67
  public
59
68
  virtual
60
- onlyOwner()
69
+ onlyInitializing()
61
70
  returns (IVersionable versionable)
62
71
  {
63
- if (_versions.length > 0) {
64
- revert ErrorProxyManagerProxyAlreadyDeployed();
65
- }
72
+ (
73
+ address currentProxyOwner,
74
+ address initialProxyAdminOwner
75
+ ) = _preDeployChecksAndSetup(registry);
66
76
 
67
- address proxyManagerOwner = getOwner(); // used by implementation
68
- address proxyAdminOwner = address(this); // used by proxy
69
-
70
77
  _proxy = new UpgradableProxyWithAdmin(
71
78
  initialImplementation,
72
- proxyAdminOwner,
73
- getDeployData(proxyManagerOwner, initializationData)
79
+ initialProxyAdminOwner,
80
+ getDeployData(currentProxyOwner, initializationData)
74
81
  );
75
82
 
76
- versionable = IVersionable(address(_proxy));
77
- _updateVersionHistory(versionable.getVersion(), initialImplementation, proxyManagerOwner);
83
+ versionable = _updateVersionHistory(
84
+ initialImplementation,
85
+ currentProxyOwner);
78
86
 
79
- emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
87
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
80
88
  }
81
89
 
82
- function deployDetermenistic(address initialImplementation, bytes memory initializationData, bytes32 salt)
90
+ function deployDetermenistic(
91
+ address registry,
92
+ address initialImplementation,
93
+ bytes memory initializationData,
94
+ bytes32 salt
95
+ )
83
96
  public
84
97
  virtual
85
- onlyOwner()
98
+ onlyInitializing()
86
99
  returns (IVersionable versionable)
87
100
  {
88
- if (_versions.length > 0) {
89
- revert ErrorProxyManagerProxyAlreadyDeployed();
90
- }
91
-
92
- address proxyManagerOwner = getOwner();
93
- address proxyAdminOwner = address(this);
101
+ (
102
+ address currentProxyOwner,
103
+ address initialProxyAdminOwner
104
+ ) = _preDeployChecksAndSetup(registry);
94
105
 
95
106
  _proxy = new UpgradableProxyWithAdmin{salt: salt}(
96
107
  initialImplementation,
97
- proxyAdminOwner,
98
- getDeployData(proxyManagerOwner, initializationData)
108
+ initialProxyAdminOwner,
109
+ getDeployData(currentProxyOwner, initializationData)
99
110
  );
100
111
 
101
- versionable = IVersionable(address(_proxy));
102
- _updateVersionHistory(versionable.getVersion(), initialImplementation, proxyManagerOwner);
112
+ versionable = _updateVersionHistory(
113
+ initialImplementation,
114
+ currentProxyOwner);
103
115
 
104
- emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
116
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
105
117
  }
106
118
 
107
119
  /// @dev upgrade existing contract
@@ -124,10 +136,11 @@ contract ProxyManager is
124
136
  newImplementation,
125
137
  getUpgradeData(upgradeData));
126
138
 
127
- versionable = IVersionable(address(_proxy));
128
- _updateVersionHistory(versionable.getVersion(), newImplementation, currentProxyOwner);
139
+ versionable = _updateVersionHistory(
140
+ newImplementation,
141
+ currentProxyOwner);
129
142
 
130
- emit LogProxyManagerVersionableUpgraded(address(_proxy), newImplementation);
143
+ emit LogProxyManagerVersionableUpgraded(address(versionable), newImplementation);
131
144
 
132
145
  }
133
146
 
@@ -168,14 +181,35 @@ contract ProxyManager is
168
181
  return _versionHistory[_version];
169
182
  }
170
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
+ address initialOwner = msg.sender;
196
+ __NftOwnable_init(registry, initialOwner);
197
+
198
+ currentProxyOwner = getOwner(); // used by implementation
199
+ initialProxyAdminOwner = address(this); // used by proxy
200
+ }
201
+
171
202
  function _updateVersionHistory(
172
- Version newVersion,
173
203
  address implementation,
174
204
  address activatedBy
175
205
  )
176
206
  private
207
+ returns (IVersionable versionable)
177
208
  {
178
- if(newVersion == VersionLib.zero()) {
209
+ versionable = IVersionable(address(_proxy));
210
+ Version newVersion = versionable.getVersion();
211
+
212
+ if(newVersion == VersionLib.zeroVersion()) {
179
213
  revert ErrorProxyManagerZeroVersion();
180
214
  }
181
215
 
@@ -20,7 +20,7 @@ abstract contract Versionable is
20
20
  bytes memory data
21
21
  )
22
22
  public
23
- initializer
23
+ initializer()
24
24
  {
25
25
  _initialize(activatedBy, data);
26
26
  }
@@ -41,8 +41,8 @@ abstract contract Versionable is
41
41
  // each implementation MUST call intializers of all base contracts...
42
42
  function _initialize(address owner, bytes memory data)
43
43
  internal
44
- virtual
45
44
  onlyInitializing()
45
+ virtual
46
46
  {
47
47
  revert();
48
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-79292f9-089",
3
+ "version": "0.0.2-79a4d57-521",
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": {
@@ -32,8 +32,8 @@
32
32
  "@nomicfoundation/hardhat-foundry": "^1.1.1",
33
33
  "@nomicfoundation/hardhat-toolbox": "^5.0.0",
34
34
  "@nomicfoundation/hardhat-verify": "^2.0.1",
35
- "@typescript-eslint/eslint-plugin": "^7.1.0",
36
- "@typescript-eslint/parser": "^7.1.0",
35
+ "@typescript-eslint/eslint-plugin": "^8.1.0",
36
+ "@typescript-eslint/parser": "^8.1.0",
37
37
  "antlr4ng-cli": "^2.0.0",
38
38
  "dotenv": "^16.3.1",
39
39
  "eslint": "^8.50.0",
@@ -49,6 +49,7 @@
49
49
  "abi-coder": "^5.0.0",
50
50
  "antlr4ng": "^3.0.4",
51
51
  "ethers": "^6.7.1",
52
+ "ethers-decode-error": "^2.1.3",
52
53
  "solidity-docgen": "^0.6.0-beta.36",
53
54
  "winston": "^3.10.0"
54
55
  }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/1239ee75b9c78381139b21319f952407.json"
4
- }