@etherisc/gif-next 0.0.2-e83e4a5-207 → 0.0.2-e876b87-961

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 (490) hide show
  1. package/README.md +32 -3
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +105 -65
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +60 -32
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
  13. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
  15. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  17. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
  19. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +206 -309
  21. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
  23. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +134 -277
  25. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +284 -223
  27. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +116 -104
  29. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +121 -92
  31. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +149 -31
  33. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  35. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  37. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  39. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  41. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  43. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  45. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  53. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +59 -37
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +34 -89
  59. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  60. package/artifacts/contracts/instance/Instance.sol/Instance.json +63 -130
  61. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +167 -140
  63. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -98
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +459 -136
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +82 -247
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +75 -87
  71. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +330 -243
  73. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  75. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  76. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  78. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
  80. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/{ObjectManager.sol/ObjectManager.json → ObjectSet.sol/ObjectSet.json} +6 -6
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  88. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  89. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  90. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  91. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +164 -280
  92. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  93. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
  94. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  95. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  96. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +96 -80
  97. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  98. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
  99. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  100. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +106 -262
  101. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -159
  103. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +75 -83
  105. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  106. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +152 -330
  107. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  108. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
  109. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  110. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +498 -167
  111. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  112. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +169 -89
  113. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  114. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +258 -1
  115. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  116. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -130
  117. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  118. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +384 -179
  119. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  120. package/artifacts/contracts/pool/Pool.sol/Pool.json +142 -313
  121. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +506 -334
  123. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +111 -87
  125. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  126. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +76 -168
  127. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +72 -92
  129. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  130. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +155 -281
  131. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  132. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
  133. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  134. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +303 -187
  135. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  136. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +119 -103
  137. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  138. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +34 -0
  139. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  140. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +176 -6
  141. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  142. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +323 -118
  143. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  144. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +114 -85
  145. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  146. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +143 -97
  147. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  148. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +31 -2
  149. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  150. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +444 -325
  151. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +119 -103
  153. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  154. package/artifacts/contracts/product/PricingService.sol/PricingService.json +202 -307
  155. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  156. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +96 -120
  157. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  158. package/artifacts/contracts/product/Product.sol/Product.json +155 -281
  159. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  160. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  161. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  162. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  163. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  164. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  165. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  166. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +322 -22
  167. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  168. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +42 -146
  169. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  170. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  171. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  172. package/artifacts/contracts/registry/Registry.sol/Registry.json +549 -80
  173. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  174. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +285 -145
  175. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  176. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +78 -284
  177. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +67 -75
  179. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
  181. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  182. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  183. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
  185. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  187. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  188. package/artifacts/contracts/shared/Component.sol/Component.json +65 -236
  189. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  190. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +546 -248
  191. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +4 -0
  192. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +206 -0
  193. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  194. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -110
  195. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  196. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +47 -112
  197. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  198. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  199. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  200. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -54
  201. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  202. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +499 -19
  203. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  204. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +85 -80
  205. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
  207. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  208. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
  209. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  210. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
  211. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  212. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
  213. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +29 -0
  215. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  216. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  218. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  219. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  220. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -265
  222. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  223. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
  224. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  225. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
  226. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  227. package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
  228. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  229. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
  230. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  231. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
  232. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +58 -89
  234. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  236. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  237. package/artifacts/contracts/shared/Service.sol/Service.json +47 -112
  238. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  239. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +407 -11
  240. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  241. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +132 -0
  242. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  243. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +82 -55
  244. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  245. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
  246. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  247. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
  248. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  249. package/artifacts/contracts/staking/Staking.sol/Staking.json +174 -291
  250. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  251. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
  252. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  253. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +106 -91
  254. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  255. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
  256. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  257. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +71 -165
  258. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  259. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +71 -79
  260. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  261. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +177 -131
  262. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  263. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
  264. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  265. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Amount.sol/AmountLib.json +61 -8
  267. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  269. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
  271. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  273. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
  275. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  276. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  277. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  279. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  280. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  281. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
  283. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
  285. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  287. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  289. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +60 -4
  291. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
  293. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
  295. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  297. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
  299. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  301. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
  302. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  303. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  304. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  305. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
  306. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  307. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  308. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  309. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  310. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  311. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  312. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  314. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  315. package/artifacts/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
  316. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  317. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  318. package/contracts/authorization/AccessAdmin.sol +64 -59
  319. package/contracts/authorization/Authorization.sol +111 -40
  320. package/contracts/authorization/IAccess.sol +1 -0
  321. package/contracts/authorization/IAccessAdmin.sol +4 -3
  322. package/contracts/authorization/IAuthorization.sol +13 -7
  323. package/contracts/authorization/IServiceAuthorization.sol +3 -1
  324. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  325. package/contracts/authorization/ServiceAuthorization.sol +26 -10
  326. package/contracts/distribution/BasicDistribution.sol +6 -16
  327. package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
  328. package/contracts/distribution/Distribution.sol +28 -26
  329. package/contracts/distribution/DistributionService.sol +128 -75
  330. package/contracts/distribution/DistributionServiceManager.sol +8 -11
  331. package/contracts/distribution/IDistributionComponent.sol +9 -5
  332. package/contracts/distribution/IDistributionService.sol +18 -2
  333. package/contracts/examples/fire/DamageLevel.sol +59 -0
  334. package/contracts/examples/fire/FirePool.sol +73 -0
  335. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  336. package/contracts/examples/fire/FireProduct.sol +415 -0
  337. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  338. package/contracts/examples/fire/FireUSD.sol +26 -0
  339. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  340. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  341. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  342. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  343. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  344. package/contracts/instance/IInstance.sol +14 -34
  345. package/contracts/instance/IInstanceService.sol +5 -25
  346. package/contracts/instance/Instance.sol +32 -54
  347. package/contracts/instance/InstanceAdmin.sol +47 -34
  348. package/contracts/instance/InstanceAuthorizationV3.sol +24 -32
  349. package/contracts/instance/InstanceReader.sol +115 -25
  350. package/contracts/instance/InstanceService.sol +75 -105
  351. package/contracts/instance/InstanceServiceManager.sol +8 -13
  352. package/contracts/instance/InstanceStore.sol +12 -1
  353. package/contracts/instance/base/ObjectLifecycle.sol +9 -4
  354. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
  355. package/contracts/instance/module/IBundle.sol +1 -1
  356. package/contracts/instance/module/IComponents.sol +10 -11
  357. package/contracts/instance/module/IDistribution.sol +0 -1
  358. package/contracts/instance/module/IPolicy.sol +24 -24
  359. package/contracts/mock/Dip.sol +1 -1
  360. package/contracts/oracle/BasicOracle.sol +0 -1
  361. package/contracts/oracle/IOracleComponent.sol +2 -1
  362. package/contracts/oracle/IOracleService.sol +2 -1
  363. package/contracts/oracle/Oracle.sol +21 -22
  364. package/contracts/oracle/OracleService.sol +47 -34
  365. package/contracts/oracle/OracleServiceManager.sol +8 -11
  366. package/contracts/pool/BasicPool.sol +21 -31
  367. package/contracts/pool/BasicPoolAuthorization.sol +11 -3
  368. package/contracts/pool/BundleService.sol +267 -70
  369. package/contracts/pool/BundleServiceManager.sol +8 -11
  370. package/contracts/pool/IBundleService.sol +42 -5
  371. package/contracts/pool/IPoolComponent.sol +24 -8
  372. package/contracts/pool/IPoolService.sol +56 -39
  373. package/contracts/pool/Pool.sol +73 -49
  374. package/contracts/pool/PoolService.sol +256 -164
  375. package/contracts/pool/PoolServiceManager.sol +6 -9
  376. package/contracts/product/ApplicationService.sol +70 -65
  377. package/contracts/product/ApplicationServiceManager.sol +6 -6
  378. package/contracts/product/BasicProduct.sol +9 -38
  379. package/contracts/product/BasicProductAuthorization.sol +2 -0
  380. package/contracts/product/ClaimService.sol +316 -146
  381. package/contracts/product/ClaimServiceManager.sol +6 -6
  382. package/contracts/product/IApplicationService.sol +1 -0
  383. package/contracts/product/IClaimService.sol +31 -7
  384. package/contracts/product/IPolicyService.sol +34 -32
  385. package/contracts/product/IPricingService.sol +10 -10
  386. package/contracts/product/IProductComponent.sol +24 -4
  387. package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
  388. package/contracts/product/PolicyService.sol +419 -203
  389. package/contracts/product/PolicyServiceManager.sol +6 -9
  390. package/contracts/product/PricingService.sol +54 -54
  391. package/contracts/product/PricingServiceManager.sol +5 -8
  392. package/contracts/product/Product.sol +134 -71
  393. package/contracts/product/{ProductService.sol → RiskService.sol} +13 -41
  394. package/contracts/product/RiskServiceManager.sol +39 -0
  395. package/contracts/registry/ChainNft.sol +68 -38
  396. package/contracts/registry/IRegistry.sol +69 -19
  397. package/contracts/registry/IRegistryService.sol +3 -10
  398. package/contracts/registry/ITransferInterceptor.sol +1 -2
  399. package/contracts/registry/Registry.sol +354 -215
  400. package/contracts/registry/RegistryAdmin.sol +155 -72
  401. package/contracts/registry/RegistryService.sol +39 -64
  402. package/contracts/registry/RegistryServiceManager.sol +4 -4
  403. package/contracts/registry/ReleaseLifecycle.sol +6 -3
  404. package/contracts/registry/ReleaseRegistry.sol +501 -0
  405. package/contracts/registry/ServiceAuthorizationV3.sol +16 -22
  406. package/contracts/registry/TokenRegistry.sol +2 -2
  407. package/contracts/shared/Component.sol +52 -62
  408. package/contracts/shared/ComponentService.sol +299 -179
  409. package/contracts/shared/ComponentServiceHelperLib.sol +118 -0
  410. package/contracts/shared/ComponentServiceManager.sol +10 -7
  411. package/contracts/shared/ComponentVerifyingService.sol +23 -14
  412. package/contracts/shared/ContractLib.sol +38 -0
  413. package/contracts/shared/IComponent.sol +10 -6
  414. package/contracts/shared/IComponentService.sol +39 -20
  415. package/contracts/shared/IInstanceLinkedComponent.sol +8 -17
  416. package/contracts/shared/ILifecycle.sol +3 -1
  417. package/contracts/shared/INftOwnable.sol +2 -0
  418. package/contracts/shared/IPolicyHolder.sol +12 -22
  419. package/contracts/shared/IRegisterable.sol +11 -0
  420. package/contracts/shared/IService.sol +1 -1
  421. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
  422. package/contracts/shared/InstanceLinkedComponent.sol +85 -23
  423. package/contracts/shared/KeyValueStore.sol +1 -1
  424. package/contracts/shared/Lifecycle.sol +15 -4
  425. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
  426. package/contracts/shared/NftOwnable.sol +29 -9
  427. package/contracts/shared/PolicyHolder.sol +17 -57
  428. package/contracts/shared/Registerable.sol +19 -9
  429. package/contracts/shared/RegistryLinked.sol +3 -2
  430. package/contracts/shared/Service.sol +23 -22
  431. package/contracts/shared/TokenHandler.sol +144 -19
  432. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  433. package/contracts/staking/IStaking.sol +3 -3
  434. package/contracts/staking/IStakingService.sol +12 -8
  435. package/contracts/staking/StakeManagerLib.sol +18 -25
  436. package/contracts/staking/Staking.sol +29 -45
  437. package/contracts/staking/StakingManager.sol +10 -12
  438. package/contracts/staking/StakingReader.sol +23 -20
  439. package/contracts/staking/StakingService.sol +25 -29
  440. package/contracts/staking/StakingServiceManager.sol +4 -4
  441. package/contracts/staking/StakingStore.sol +12 -22
  442. package/contracts/staking/TargetManagerLib.sol +7 -3
  443. package/contracts/type/Amount.sol +27 -5
  444. package/contracts/type/Blocknumber.sol +7 -1
  445. package/contracts/type/ClaimId.sol +6 -1
  446. package/contracts/type/NftId.sol +1 -0
  447. package/contracts/type/ObjectType.sol +19 -18
  448. package/contracts/type/PayoutId.sol +10 -10
  449. package/contracts/type/Referral.sol +1 -0
  450. package/contracts/type/RiskId.sol +15 -1
  451. package/contracts/type/RoleId.sol +0 -12
  452. package/contracts/type/Seconds.sol +21 -1
  453. package/contracts/type/StateId.sol +15 -1
  454. package/contracts/type/Timestamp.sol +11 -1
  455. package/contracts/type/UFixed.sol +33 -10
  456. package/contracts/type/Version.sol +3 -1
  457. package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -38
  458. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  459. package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
  460. package/package.json +4 -3
  461. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
  462. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
  463. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
  464. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
  465. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  466. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
  467. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  468. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  469. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  470. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
  471. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  472. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
  473. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  474. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
  475. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  476. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  477. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  478. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
  479. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
  480. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  481. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  482. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
  483. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  484. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  485. package/contracts/authorization/IModuleAuthorization.sol +0 -21
  486. package/contracts/authorization/ModuleAuthorization.sol +0 -78
  487. package/contracts/product/ProductServiceManager.sol +0 -42
  488. package/contracts/registry/ReleaseManager.sol +0 -487
  489. package/contracts/shared/InitializableCustom.sol +0 -177
  490. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -6,9 +6,14 @@ type Seconds is uint40;
6
6
  using {
7
7
  SecondsEq as ==,
8
8
  SecondsGt as >,
9
+ SecondsAdd as +,
9
10
  SecondsLib.eqz,
10
11
  SecondsLib.gtz,
11
- SecondsLib.toInt
12
+ SecondsLib.eq,
13
+ SecondsLib.gt,
14
+ SecondsLib.lt,
15
+ SecondsLib.toInt,
16
+ SecondsLib.add
12
17
  } for Seconds global;
13
18
 
14
19
  function SecondsEq(Seconds duration1, Seconds duration2) pure returns (bool) {
@@ -19,6 +24,11 @@ function SecondsGt(Seconds duration1, Seconds duration2) pure returns (bool) {
19
24
  return SecondsLib.gt(duration1, duration2);
20
25
  }
21
26
 
27
+ function SecondsAdd(Seconds duration1, Seconds duration2) pure returns (Seconds) {
28
+ return SecondsLib.add(duration1, duration2);
29
+ }
30
+
31
+
22
32
  library SecondsLib {
23
33
 
24
34
  error ErrorSecondsLibDurationTooBig(uint256 duration);
@@ -70,6 +80,16 @@ library SecondsLib {
70
80
  return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
71
81
  }
72
82
 
83
+ /// @dev return true if duration1 is smaller than duration2
84
+ function lt(Seconds duration1, Seconds duration2) public pure returns (bool) {
85
+ return Seconds.unwrap(duration1) < Seconds.unwrap(duration2);
86
+ }
87
+
88
+ /// @dev return add duration1 and duration2
89
+ function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
90
+ return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
91
+ }
92
+
73
93
  function toInt(Seconds duration) public pure returns (uint256) {
74
94
  return uint256(uint40(Seconds.unwrap(duration)));
75
95
  }
@@ -9,6 +9,7 @@ using {
9
9
  eqStateId as ==,
10
10
  neStateId as !=,
11
11
  StateIdLib.eqz,
12
+ StateIdLib.eq,
12
13
  StateIdLib.gtz,
13
14
  StateIdLib.toInt
14
15
  } for StateId global;
@@ -27,10 +28,18 @@ function DEPLOYING() pure returns (StateId) {
27
28
  return toStateId(3);
28
29
  }
29
30
 
30
- function ACTIVE() pure returns (StateId) {
31
+ function DEPLOYED() pure returns (StateId) {
31
32
  return toStateId(4);
32
33
  }
33
34
 
35
+ function ACTIVE() pure returns (StateId) {
36
+ return toStateId(5);
37
+ }
38
+
39
+ function SKIPPED() pure returns (StateId) {
40
+ return toStateId(6);
41
+ }
42
+
34
43
  function APPLIED() pure returns (StateId) {
35
44
  return toStateId(10);
36
45
  }
@@ -113,6 +122,11 @@ function neStateId(StateId a, StateId b) pure returns (bool isDifferent) {
113
122
 
114
123
  // library functions that operate on user defined type
115
124
  library StateIdLib {
125
+
126
+ function zero() public pure returns (StateId) {
127
+ return StateId.wrap(0);
128
+ }
129
+
116
130
  /// @dev Converts the NftId to a uint256.
117
131
  function toInt(StateId stateId) public pure returns (uint96) {
118
132
  return uint96(StateId.unwrap(stateId));
@@ -12,6 +12,12 @@ using {
12
12
  lteTimestamp as <=,
13
13
  eqTimestamp as ==,
14
14
  neTimestamp as !=,
15
+ TimestampLib.eq,
16
+ TimestampLib.ne,
17
+ TimestampLib.gt,
18
+ TimestampLib.gte,
19
+ TimestampLib.lt,
20
+ TimestampLib.lte,
15
21
  TimestampLib.gtz,
16
22
  TimestampLib.eqz,
17
23
  TimestampLib.addSeconds,
@@ -50,7 +56,7 @@ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
50
56
 
51
57
  /// @dev Converts the uint256 to a Timestamp.
52
58
  function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
53
- return Timestamp.wrap(uint40(timestamp));
59
+ return TimestampLib.toTimestamp(timestamp);
54
60
  }
55
61
 
56
62
  // TODO move to TimestampLib and rename to zero()
@@ -72,6 +78,10 @@ library TimestampLib {
72
78
  function blockTimestamp() public view returns (Timestamp) {
73
79
  return Timestamp.wrap(uint40(block.timestamp));
74
80
  }
81
+
82
+ function toTimestamp(uint256 timestamp) public pure returns (Timestamp) {
83
+ return Timestamp.wrap(uint40(timestamp));
84
+ }
75
85
 
76
86
  /// @dev return true if Timestamp a is after Timestamp b
77
87
  function gt(Timestamp a, Timestamp b) public pure returns (bool isAfter) {
@@ -15,9 +15,10 @@ 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.toInt1000,
20
- UFixedLib.gtz
21
+ UFixedLib.toInt1000
21
22
  } for UFixed global;
22
23
 
23
24
  // TODO move to UFixedLib and rename to zero()
@@ -30,7 +31,9 @@ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
30
31
  }
31
32
 
32
33
  function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
33
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
34
+ if (a < b) {
35
+ revert UFixedLib.UFixedLibNegativeResult();
36
+ }
34
37
  return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
35
38
  }
36
39
 
@@ -40,8 +43,10 @@ function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
40
43
  }
41
44
 
42
45
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
43
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
44
-
46
+ if (UFixed.unwrap(b) == 0) {
47
+ revert UFixedLib.UFixedLibDivisionByZero();
48
+ }
49
+
45
50
  return
46
51
  UFixed.wrap(MathLib.mulDiv(UFixed.unwrap(a), 10 ** 18, UFixed.unwrap(b)));
47
52
  }
@@ -89,6 +94,8 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
89
94
  /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
90
95
  library MathLib {
91
96
 
97
+ error MathLigMulDivOverflow();
98
+
92
99
  enum Rounding {
93
100
  Down, // Toward negative infinity
94
101
  Up, // Toward infinity
@@ -122,8 +129,10 @@ library MathLib {
122
129
  }
123
130
 
124
131
  // Make sure the result is less than 2^256. Also prevents denominator == 0.
125
- require(denominator > prod1, "Math: mulDiv overflow");
126
-
132
+ if (denominator <= prod1) {
133
+ revert MathLigMulDivOverflow();
134
+ }
135
+
127
136
  ///////////////////////////////////////////////
128
137
  // 512 by 256 division.
129
138
  ///////////////////////////////////////////////
@@ -195,6 +204,12 @@ library MathLib {
195
204
  }
196
205
 
197
206
  library UFixedLib {
207
+ error UFixedLibNegativeResult();
208
+ error UFixedLibDivisionByZero();
209
+
210
+ error UFixedLibExponentTooSmall(int8 exp);
211
+ error UFixedLibExponentTooLarge(int8 exp);
212
+
198
213
  int8 public constant EXP = 18;
199
214
  uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
200
215
  uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
@@ -221,9 +236,13 @@ library UFixedLib {
221
236
 
222
237
  /// @dev Converts the uint256 to a UFixed with given exponent.
223
238
  function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
224
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
225
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
226
-
239
+ if (EXP + exp < 0) {
240
+ revert UFixedLibExponentTooSmall(exp);
241
+ }
242
+ if (EXP + exp > 64) {
243
+ revert UFixedLibExponentTooLarge(exp);
244
+ }
245
+
227
246
  return UFixed.wrap(a * 10 ** uint8(EXP + exp));
228
247
  }
229
248
 
@@ -325,6 +344,10 @@ library UFixedLib {
325
344
  return UFixed.wrap(0);
326
345
  }
327
346
 
347
+ function one() public pure returns (UFixed) {
348
+ return UFixed.wrap(MULTIPLIER);
349
+ }
350
+
328
351
  /// @dev return the absolute delta between two UFixed numbers
329
352
  function delta(UFixed a, UFixed b) public pure returns (UFixed) {
330
353
  return deltaUFixed(a, b);
@@ -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
 
@@ -1,17 +1,16 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
+ import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
4
5
  import {ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
5
6
 
6
7
  import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
7
8
  import {IVersionable} from "./IVersionable.sol";
8
- import {NftOwnable} from "./NftOwnable.sol";
9
- import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
10
- import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {NftOwnable} from "../shared/NftOwnable.sol";
11
11
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
12
12
  import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
13
13
  import {Version, VersionLib} from "../type/Version.sol";
14
- import {NftId} from "../type/NftId.sol";
15
14
 
16
15
  /// @dev manages proxy deployments for upgradable contracs of type IVersionable
17
16
  contract ProxyManager is
@@ -41,57 +40,68 @@ contract ProxyManager is
41
40
  mapping(Version version => VersionInfo info) _versionHistory;
42
41
  Version [] _versions;
43
42
 
44
- /// @dev only used to capture proxy owner
45
- constructor(address registry)
46
- {
47
- initializeProxyManager(registry);
48
- }
49
-
50
- 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
+ )
51
50
  public
52
51
  initializer()
52
+ returns (IVersionable versionable)
53
53
  {
54
- initializeNftOwnable(msg.sender, registry);
54
+ versionable = deployDetermenistic(
55
+ registry,
56
+ implementation,
57
+ data,
58
+ salt);
55
59
  }
56
60
 
57
61
  /// @dev deploy initial contract
58
- function deploy(address initialImplementation, bytes memory initializationData)
62
+ function deploy(
63
+ address registry,
64
+ address initialImplementation,
65
+ bytes memory initializationData
66
+ )
59
67
  public
60
68
  virtual
61
- onlyOwner()
69
+ onlyInitializing()
62
70
  returns (IVersionable versionable)
63
71
  {
64
- if (_versions.length > 0) {
65
- revert ErrorProxyManagerAlreadyDeployed();
66
- }
72
+ (
73
+ address currentProxyOwner,
74
+ address initialProxyAdminOwner
75
+ ) = _preDeployChecksAndSetup(registry);
67
76
 
68
- address currentProxyOwner = getOwner(); // used by implementation
69
- address initialProxyAdminOwner = address(this); // used by proxy
70
-
71
77
  _proxy = new UpgradableProxyWithAdmin(
72
78
  initialImplementation,
73
79
  initialProxyAdminOwner,
74
80
  getDeployData(currentProxyOwner, initializationData)
75
81
  );
76
82
 
77
- versionable = IVersionable(address(_proxy));
78
- _updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
83
+ versionable = _updateVersionHistory(
84
+ initialImplementation,
85
+ currentProxyOwner);
79
86
 
80
- emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
87
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
81
88
  }
82
89
 
83
- 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
+ )
84
96
  public
85
97
  virtual
86
- onlyOwner()
98
+ onlyInitializing()
87
99
  returns (IVersionable versionable)
88
100
  {
89
- if (_versions.length > 0) {
90
- revert ErrorProxyManagerAlreadyDeployed();
91
- }
92
-
93
- address currentProxyOwner = getOwner();
94
- address initialProxyAdminOwner = address(this);
101
+ (
102
+ address currentProxyOwner,
103
+ address initialProxyAdminOwner
104
+ ) = _preDeployChecksAndSetup(registry);
95
105
 
96
106
  _proxy = new UpgradableProxyWithAdmin{salt: salt}(
97
107
  initialImplementation,
@@ -99,10 +109,11 @@ contract ProxyManager is
99
109
  getDeployData(currentProxyOwner, initializationData)
100
110
  );
101
111
 
102
- versionable = IVersionable(address(_proxy));
103
- _updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
112
+ versionable = _updateVersionHistory(
113
+ initialImplementation,
114
+ currentProxyOwner);
104
115
 
105
- emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
116
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
106
117
  }
107
118
 
108
119
  /// @dev upgrade existing contract
@@ -125,10 +136,11 @@ contract ProxyManager is
125
136
  newImplementation,
126
137
  getUpgradeData(upgradeData));
127
138
 
128
- versionable = IVersionable(address(_proxy));
129
- _updateVersionHistory(versionable.getVersion(), newImplementation, currentProxyOwner);
139
+ versionable = _updateVersionHistory(
140
+ newImplementation,
141
+ currentProxyOwner);
130
142
 
131
- emit LogProxyManagerVersionableUpgraded(address(_proxy), newImplementation);
143
+ emit LogProxyManagerVersionableUpgraded(address(versionable), newImplementation);
132
144
 
133
145
  }
134
146
 
@@ -169,13 +181,34 @@ contract ProxyManager is
169
181
  return _versionHistory[_version];
170
182
  }
171
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
+ _initializeNftOwnable(registry, initialOwner);
197
+
198
+ currentProxyOwner = getOwner(); // used by implementation
199
+ initialProxyAdminOwner = address(this); // used by proxy
200
+ }
201
+
172
202
  function _updateVersionHistory(
173
- Version newVersion,
174
203
  address implementation,
175
204
  address activatedBy
176
205
  )
177
206
  private
207
+ returns (IVersionable versionable)
178
208
  {
209
+ versionable = IVersionable(address(_proxy));
210
+ Version newVersion = versionable.getVersion();
211
+
179
212
  if(newVersion == VersionLib.zeroVersion()) {
180
213
  revert ErrorProxyManagerZeroVersion();
181
214
  }
@@ -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
 
@@ -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,7 +41,7 @@ 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
- onlyInitializing
44
+ onlyInitializing()
45
45
  virtual
46
46
  {
47
47
  revert();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-e83e4a5-207",
3
+ "version": "0.0.2-e876b87-961",
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": {
@@ -43,12 +43,13 @@
43
43
  "typescript": "^5"
44
44
  },
45
45
  "dependencies": {
46
- "@openzeppelin/contracts": "5.0.0",
47
- "@openzeppelin/contracts-upgradeable": "5.0.0",
46
+ "@openzeppelin/contracts": "5.0.2",
47
+ "@openzeppelin/contracts-upgradeable": "5.0.2",
48
48
  "@openzeppelin/upgrades-core": "^1.34.1",
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/da371cdc279ff13acc58db2cd14c11ee.json"
4
- }