@etherisc/gif-next 0.0.2-be8b3db-650 → 0.0.2-bf018c6-898

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (709) hide show
  1. package/README.md +83 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -0
  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 +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1092 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +238 -523
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +337 -273
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +329 -334
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +365 -1924
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +329 -79
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +426 -2705
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1800 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1449 -394
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +352 -373
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +157 -106
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  106. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  107. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  108. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  114. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  118. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +355 -162
  119. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  125. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  126. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +313 -399
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +820 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  134. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +946 -0
  135. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  136. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +320 -349
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  138. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1309 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  140. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1626 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +792 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  150. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +456 -434
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1538 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +860 -0
  157. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +208 -167
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1082 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +968 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +249 -277
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  167. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  168. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +130 -61
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1320 -0
  171. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  173. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  175. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  177. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  178. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  179. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  181. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  183. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  185. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +480 -26
  187. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +277 -124
  189. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  191. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  193. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  194. package/artifacts/contracts/registry/Registry.sol/Registry.json +963 -118
  195. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  197. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +352 -260
  199. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  201. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  203. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  205. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  207. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  209. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  211. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  212. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  213. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1597 -0
  215. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -0
  217. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  218. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +115 -182
  219. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  227. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  228. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +229 -84
  229. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1221 -0
  231. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  232. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +247 -250
  233. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  234. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  235. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  237. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  239. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  241. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  243. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  245. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IService.sol/IService.json +148 -18
  247. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  249. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  250. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +204 -221
  251. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  253. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  255. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  257. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  259. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  261. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  263. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  265. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  266. package/artifacts/contracts/shared/Service.sol/Service.json +134 -106
  267. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  271. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  273. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  275. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1067 -0
  277. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  279. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  281. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  283. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  285. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  287. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1272 -0
  289. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  291. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  293. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  295. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  297. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  299. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  301. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  303. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  305. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  307. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  309. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  311. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  313. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  315. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  317. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  319. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  321. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  323. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  325. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  327. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  329. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  333. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  335. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  337. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  339. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  341. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  343. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  345. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  346. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  347. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  349. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  351. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  352. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  353. package/contracts/accounting/AccountingService.sol +262 -0
  354. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  355. package/contracts/accounting/IAccountingService.sol +45 -0
  356. package/contracts/authorization/AccessAdmin.sol +659 -0
  357. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  358. package/contracts/authorization/Authorization.sol +289 -0
  359. package/contracts/authorization/IAccess.sol +49 -0
  360. package/contracts/authorization/IAccessAdmin.sol +140 -0
  361. package/contracts/authorization/IAuthorization.sol +60 -0
  362. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  363. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  364. package/contracts/distribution/BasicDistribution.sol +139 -0
  365. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  366. package/contracts/{components → distribution}/Distribution.sol +170 -163
  367. package/contracts/distribution/DistributionService.sol +357 -0
  368. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  369. package/contracts/distribution/IDistributionComponent.sol +52 -0
  370. package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -34
  371. package/contracts/examples/fire/DamageLevel.sol +59 -0
  372. package/contracts/examples/fire/FirePool.sol +90 -0
  373. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  374. package/contracts/examples/fire/FireProduct.sol +438 -0
  375. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  376. package/contracts/examples/fire/FireUSD.sol +26 -0
  377. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  378. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  379. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  380. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  381. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  383. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  384. package/contracts/instance/BundleSet.sol +130 -0
  385. package/contracts/instance/IInstance.sol +47 -74
  386. package/contracts/instance/IInstanceService.sol +39 -27
  387. package/contracts/instance/Instance.sol +170 -230
  388. package/contracts/instance/InstanceAdmin.sol +326 -0
  389. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  390. package/contracts/instance/InstanceReader.sol +365 -63
  391. package/contracts/instance/InstanceService.sol +291 -376
  392. package/contracts/instance/InstanceServiceManager.sol +14 -29
  393. package/contracts/instance/InstanceStore.sol +298 -0
  394. package/contracts/instance/RiskSet.sol +118 -0
  395. package/contracts/instance/base/BalanceStore.sol +123 -0
  396. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  397. package/contracts/instance/base/ObjectCounter.sol +20 -0
  398. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  399. package/contracts/instance/base/ObjectSet.sol +77 -0
  400. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  401. package/contracts/instance/module/IAccess.sol +19 -20
  402. package/contracts/instance/module/IBundle.sol +8 -9
  403. package/contracts/instance/module/IComponents.sol +28 -12
  404. package/contracts/instance/module/IDistribution.sol +6 -6
  405. package/contracts/instance/module/IPolicy.sol +48 -35
  406. package/contracts/instance/module/IRisk.sol +4 -1
  407. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  408. package/contracts/oracle/BasicOracle.sol +47 -0
  409. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  410. package/contracts/oracle/IOracle.sol +36 -0
  411. package/contracts/oracle/IOracleComponent.sol +33 -0
  412. package/contracts/oracle/IOracleService.sol +66 -0
  413. package/contracts/oracle/Oracle.sol +156 -0
  414. package/contracts/oracle/OracleService.sol +310 -0
  415. package/contracts/oracle/OracleServiceManager.sol +39 -0
  416. package/contracts/pool/BasicPool.sol +175 -0
  417. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  418. package/contracts/pool/BundleService.sol +425 -0
  419. package/contracts/pool/BundleServiceManager.sol +39 -0
  420. package/contracts/pool/IBundleService.sol +121 -0
  421. package/contracts/pool/IPoolComponent.sol +62 -0
  422. package/contracts/pool/IPoolService.sol +153 -0
  423. package/contracts/pool/Pool.sol +345 -0
  424. package/contracts/pool/PoolService.sol +615 -0
  425. package/contracts/pool/PoolServiceManager.sol +39 -0
  426. package/contracts/product/ApplicationService.sol +259 -0
  427. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  428. package/contracts/product/BasicProduct.sol +51 -0
  429. package/contracts/product/BasicProductAuthorization.sol +41 -0
  430. package/contracts/product/ClaimService.sol +708 -0
  431. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  432. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  433. package/contracts/product/IClaimService.sol +136 -0
  434. package/contracts/product/IPolicyService.sol +90 -0
  435. package/contracts/product/IPricingService.sol +39 -0
  436. package/contracts/product/IProductComponent.sol +62 -0
  437. package/contracts/product/IRiskService.sol +33 -0
  438. package/contracts/product/PolicyService.sol +736 -0
  439. package/contracts/product/PolicyServiceManager.sol +39 -0
  440. package/contracts/product/PricingService.sol +304 -0
  441. package/contracts/product/PricingServiceManager.sol +39 -0
  442. package/contracts/product/Product.sol +463 -0
  443. package/contracts/product/RiskService.sol +151 -0
  444. package/contracts/product/RiskServiceManager.sol +39 -0
  445. package/contracts/registry/ChainNft.sol +79 -36
  446. package/contracts/registry/IRegistry.sol +95 -30
  447. package/contracts/registry/IRegistryService.sol +36 -41
  448. package/contracts/registry/IRelease.sol +26 -0
  449. package/contracts/registry/ITransferInterceptor.sol +1 -1
  450. package/contracts/registry/Registry.sol +467 -203
  451. package/contracts/registry/RegistryAdmin.sol +344 -0
  452. package/contracts/registry/RegistryService.sol +89 -131
  453. package/contracts/registry/RegistryServiceManager.sol +23 -32
  454. package/contracts/registry/ReleaseAdmin.sol +245 -0
  455. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  456. package/contracts/registry/ReleaseRegistry.sol +511 -0
  457. package/contracts/registry/ServiceAuthorizationV3.sol +242 -0
  458. package/contracts/registry/TokenRegistry.sol +261 -64
  459. package/contracts/shared/Component.sol +226 -0
  460. package/contracts/shared/ComponentService.sol +700 -0
  461. package/contracts/shared/ComponentServiceManager.sol +38 -0
  462. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  463. package/contracts/shared/ContractLib.sol +252 -0
  464. package/contracts/shared/IComponent.sol +61 -0
  465. package/contracts/shared/IComponentService.sol +116 -0
  466. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  467. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  468. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  469. package/contracts/shared/INftOwnable.sol +4 -2
  470. package/contracts/shared/IPolicyHolder.sol +23 -14
  471. package/contracts/shared/IRegisterable.sol +23 -1
  472. package/contracts/shared/IRegistryLinked.sol +0 -1
  473. package/contracts/shared/IService.sol +12 -7
  474. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  475. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  476. package/contracts/shared/KeyValueStore.sol +131 -0
  477. package/contracts/shared/Lifecycle.sol +88 -0
  478. package/contracts/shared/NftIdSet.sol +65 -0
  479. package/contracts/shared/NftOwnable.sol +34 -27
  480. package/contracts/shared/PolicyHolder.sol +22 -41
  481. package/contracts/shared/Registerable.sol +55 -20
  482. package/contracts/shared/RegistryLinked.sol +9 -19
  483. package/contracts/shared/Service.sol +36 -29
  484. package/contracts/shared/TokenHandler.sol +368 -12
  485. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  486. package/contracts/staking/IStaking.sol +173 -0
  487. package/contracts/staking/IStakingService.sol +157 -0
  488. package/contracts/staking/StakeManagerLib.sol +224 -0
  489. package/contracts/staking/Staking.sol +526 -0
  490. package/contracts/staking/StakingLifecycle.sol +23 -0
  491. package/contracts/staking/StakingManager.sol +52 -0
  492. package/contracts/staking/StakingReader.sol +190 -0
  493. package/contracts/staking/StakingService.sol +439 -0
  494. package/contracts/staking/StakingServiceManager.sol +44 -0
  495. package/contracts/staking/StakingStore.sol +605 -0
  496. package/contracts/staking/TargetManagerLib.sol +211 -0
  497. package/contracts/{types → type}/AddressSet.sol +1 -1
  498. package/contracts/type/Amount.sol +150 -0
  499. package/contracts/{types → type}/Blocknumber.sol +26 -3
  500. package/contracts/{types → type}/ClaimId.sol +31 -3
  501. package/contracts/{types → type}/Fee.sol +33 -24
  502. package/contracts/{types → type}/Key32.sol +2 -2
  503. package/contracts/type/Key32Set.sol +62 -0
  504. package/contracts/{types → type}/NftId.sol +21 -16
  505. package/contracts/{types → type}/NftIdSet.sol +2 -2
  506. package/contracts/type/ObjectType.sol +290 -0
  507. package/contracts/type/PayoutId.sol +82 -0
  508. package/contracts/{types → type}/Referral.sol +2 -1
  509. package/contracts/type/RequestId.sol +75 -0
  510. package/contracts/type/RiskId.sol +74 -0
  511. package/contracts/type/RoleId.sol +165 -0
  512. package/contracts/type/Seconds.sol +101 -0
  513. package/contracts/type/Selector.sol +102 -0
  514. package/contracts/{types → type}/StateId.sol +47 -4
  515. package/contracts/type/String.sol +53 -0
  516. package/contracts/{types → type}/Timestamp.sol +20 -6
  517. package/contracts/{types → type}/UFixed.sol +40 -121
  518. package/contracts/{types → type}/Version.sol +19 -7
  519. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  520. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  521. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  522. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  523. package/package.json +11 -7
  524. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  525. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  526. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  528. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  529. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  531. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  532. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  533. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
  534. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  535. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  536. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  537. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  539. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  544. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  546. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  549. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  551. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  553. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  555. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  557. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  559. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  561. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1724
  563. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
  565. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  568. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  569. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  570. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  572. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  573. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  576. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  578. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -816
  580. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
  582. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  583. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  584. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  585. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  586. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  587. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  588. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  589. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  590. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  591. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  592. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  593. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  594. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  595. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  596. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  597. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  598. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  599. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  601. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  602. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  603. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  604. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  606. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  608. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  610. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  612. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  614. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  615. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  616. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  617. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  618. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  619. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  620. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  621. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  622. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  623. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  624. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  625. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  626. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  628. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  630. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  632. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  634. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  636. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  638. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  640. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  642. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  644. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  646. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  648. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  650. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  652. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  653. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  654. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  656. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  658. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  660. package/contracts/components/Component.sol +0 -241
  661. package/contracts/components/IComponent.sol +0 -74
  662. package/contracts/components/IDistributionComponent.sol +0 -71
  663. package/contracts/components/IPoolComponent.sol +0 -113
  664. package/contracts/components/IProductComponent.sol +0 -40
  665. package/contracts/components/Pool.sol +0 -299
  666. package/contracts/components/Product.sol +0 -293
  667. package/contracts/instance/BundleManager.sol +0 -127
  668. package/contracts/instance/InstanceAccessManager.sol +0 -297
  669. package/contracts/instance/ObjectManager.sol +0 -84
  670. package/contracts/instance/base/ComponentService.sol +0 -134
  671. package/contracts/instance/base/KeyValueStore.sol +0 -175
  672. package/contracts/instance/base/Lifecycle.sol +0 -109
  673. package/contracts/instance/module/ISetup.sol +0 -33
  674. package/contracts/instance/module/ITreasury.sol +0 -23
  675. package/contracts/instance/service/ApplicationService.sol +0 -350
  676. package/contracts/instance/service/BundleService.sol +0 -336
  677. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  678. package/contracts/instance/service/ClaimService.sol +0 -151
  679. package/contracts/instance/service/DistributionService.sol +0 -450
  680. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  681. package/contracts/instance/service/IBundleService.sol +0 -62
  682. package/contracts/instance/service/IClaimService.sol +0 -61
  683. package/contracts/instance/service/IPolicyService.sol +0 -72
  684. package/contracts/instance/service/IPoolService.sol +0 -35
  685. package/contracts/instance/service/IProductService.sol +0 -40
  686. package/contracts/instance/service/PolicyService.sol +0 -403
  687. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  688. package/contracts/instance/service/PoolService.sol +0 -163
  689. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  690. package/contracts/instance/service/ProductService.sol +0 -233
  691. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  692. package/contracts/registry/RegistryAccessManager.sol +0 -216
  693. package/contracts/registry/ReleaseManager.sol +0 -322
  694. package/contracts/shared/ContractDeployerLib.sol +0 -72
  695. package/contracts/test/TestFee.sol +0 -25
  696. package/contracts/test/TestRegisterable.sol +0 -18
  697. package/contracts/test/TestRoleId.sol +0 -14
  698. package/contracts/test/TestService.sol +0 -25
  699. package/contracts/test/TestToken.sol +0 -26
  700. package/contracts/test/TestVersion.sol +0 -44
  701. package/contracts/test/TestVersionable.sol +0 -17
  702. package/contracts/types/ChainId.sol +0 -38
  703. package/contracts/types/NumberId.sol +0 -52
  704. package/contracts/types/ObjectType.sol +0 -157
  705. package/contracts/types/PayoutId.sol +0 -54
  706. package/contracts/types/RiskId.sol +0 -43
  707. package/contracts/types/RoleId.sol +0 -95
  708. package/contracts/types/Seconds.sol +0 -54
  709. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -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
 
@@ -15,8 +17,10 @@ using {
15
17
  lteUFixed as <=,
16
18
  eqUFixed as ==,
17
19
  neUFixed as !=,
20
+ UFixedLib.gt,
21
+ UFixedLib.gtz,
18
22
  UFixedLib.toInt,
19
- UFixedLib.gtz
23
+ UFixedLib.toInt1000
20
24
  } for UFixed global;
21
25
 
22
26
  // TODO move to UFixedLib and rename to zero()
@@ -29,20 +33,24 @@ function addUFixed(UFixed a, UFixed b) pure returns (UFixed) {
29
33
  }
30
34
 
31
35
  function subUFixed(UFixed a, UFixed b) pure returns (UFixed) {
32
- require(a >= b, "ERROR:UFM-010:NEGATIVE_RESULT");
36
+ if (a < b) {
37
+ revert UFixedLib.UFixedLibNegativeResult();
38
+ }
33
39
  return UFixed.wrap(UFixed.unwrap(a) - UFixed.unwrap(b));
34
40
  }
35
41
 
36
42
  function mulUFixed(UFixed a, UFixed b) pure returns (UFixed) {
37
43
  return
38
- 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));
39
45
  }
40
46
 
41
47
  function divUFixed(UFixed a, UFixed b) pure returns (UFixed) {
42
- require(UFixed.unwrap(b) > 0, "ERROR:UFM-020:DIVISOR_ZERO");
43
-
48
+ if (UFixed.unwrap(b) == 0) {
49
+ revert UFixedLib.UFixedLibDivisionByZero();
50
+ }
51
+
44
52
  return
45
- 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)));
46
54
  }
47
55
 
48
56
  function gtUFixed(UFixed a, UFixed b) pure returns (bool isGreaterThan) {
@@ -85,115 +93,13 @@ function deltaUFixed(UFixed a, UFixed b) pure returns (UFixed) {
85
93
  return b - a;
86
94
  }
87
95
 
88
- /// @dev copied from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/v4.9.3/contracts/utils/math/Math.sol
89
- library MathLib {
90
-
91
- enum Rounding {
92
- Down, // Toward negative infinity
93
- Up, // Toward infinity
94
- Zero // Toward zero
95
- }
96
-
97
- /**
98
- * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or denominator == 0
99
- * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv)
100
- * with further edits by Uniswap Labs also under MIT license.
101
- */
102
- function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {
103
- unchecked {
104
- // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use
105
- // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256
106
- // variables such that product = prod1 * 2^256 + prod0.
107
- uint256 prod0; // Least significant 256 bits of the product
108
- uint256 prod1; // Most significant 256 bits of the product
109
- assembly {
110
- let mm := mulmod(x, y, not(0))
111
- prod0 := mul(x, y)
112
- prod1 := sub(sub(mm, prod0), lt(mm, prod0))
113
- }
114
-
115
- // Handle non-overflow cases, 256 by 256 division.
116
- if (prod1 == 0) {
117
- // Solidity will revert if denominator == 0, unlike the div opcode on its own.
118
- // The surrounding unchecked block does not change this fact.
119
- // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.
120
- return prod0 / denominator;
121
- }
122
-
123
- // Make sure the result is less than 2^256. Also prevents denominator == 0.
124
- require(denominator > prod1, "Math: mulDiv overflow");
125
-
126
- ///////////////////////////////////////////////
127
- // 512 by 256 division.
128
- ///////////////////////////////////////////////
129
-
130
- // Make division exact by subtracting the remainder from [prod1 prod0].
131
- uint256 remainder;
132
- assembly {
133
- // Compute remainder using mulmod.
134
- remainder := mulmod(x, y, denominator)
135
-
136
- // Subtract 256 bit number from 512 bit number.
137
- prod1 := sub(prod1, gt(remainder, prod0))
138
- prod0 := sub(prod0, remainder)
139
- }
140
-
141
- // Factor powers of two out of denominator and compute largest power of two divisor of denominator. Always >= 1.
142
- // See https://cs.stackexchange.com/q/138556/92363.
143
-
144
- // Does not overflow because the denominator cannot be zero at this stage in the function.
145
- uint256 twos = denominator & (~denominator + 1);
146
- assembly {
147
- // Divide denominator by twos.
148
- denominator := div(denominator, twos)
149
-
150
- // Divide [prod1 prod0] by twos.
151
- prod0 := div(prod0, twos)
152
-
153
- // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.
154
- twos := add(div(sub(0, twos), twos), 1)
155
- }
156
-
157
- // Shift in bits from prod1 into prod0.
158
- prod0 |= prod1 * twos;
159
-
160
- // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such
161
- // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for
162
- // four bits. That is, denominator * inv = 1 mod 2^4.
163
- uint256 inverse = (3 * denominator) ^ 2;
164
-
165
- // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also works
166
- // in modular arithmetic, doubling the correct bits in each step.
167
- inverse *= 2 - denominator * inverse; // inverse mod 2^8
168
- inverse *= 2 - denominator * inverse; // inverse mod 2^16
169
- inverse *= 2 - denominator * inverse; // inverse mod 2^32
170
- inverse *= 2 - denominator * inverse; // inverse mod 2^64
171
- inverse *= 2 - denominator * inverse; // inverse mod 2^128
172
- inverse *= 2 - denominator * inverse; // inverse mod 2^256
173
-
174
- // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.
175
- // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is
176
- // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1
177
- // is no longer required.
178
- result = prod0 * inverse;
179
- return result;
180
- }
181
- }
182
-
183
- /**
184
- * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.
185
- */
186
- function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {
187
- uint256 result = mulDiv(x, y, denominator);
188
- if (rounding == Rounding.Up && mulmod(x, y, denominator) > 0) {
189
- result += 1;
190
- }
191
- return result;
192
- }
96
+ library UFixedLib {
97
+ error UFixedLibNegativeResult();
98
+ error UFixedLibDivisionByZero();
193
99
 
194
- }
100
+ error UFixedLibExponentTooSmall(int8 exp);
101
+ error UFixedLibExponentTooLarge(int8 exp);
195
102
 
196
- library UFixedLib {
197
103
  int8 public constant EXP = 18;
198
104
  uint256 public constant MULTIPLIER = 10 ** uint256(int256(EXP));
199
105
  uint256 public constant MULTIPLIER_HALF = MULTIPLIER / 2;
@@ -220,9 +126,13 @@ library UFixedLib {
220
126
 
221
127
  /// @dev Converts the uint256 to a UFixed with given exponent.
222
128
  function toUFixed(uint256 a, int8 exp) public pure returns (UFixed) {
223
- require(EXP + exp >= 0, "ERROR:FM-010:EXPONENT_TOO_SMALL");
224
- require(EXP + exp <= 64, "ERROR:FM-011:EXPONENT_TOO_LARGE");
225
-
129
+ if (EXP + exp < 0) {
130
+ revert UFixedLibExponentTooSmall(exp);
131
+ }
132
+ if (EXP + exp > 64) {
133
+ revert UFixedLibExponentTooLarge(exp);
134
+ }
135
+
226
136
  return UFixed.wrap(a * 10 ** uint8(EXP + exp));
227
137
  }
228
138
 
@@ -236,27 +146,32 @@ library UFixedLib {
236
146
  return toIntWithRounding(a, ROUNDING_HALF_UP());
237
147
  }
238
148
 
149
+ /// @dev Converts a UFixed to a uint256.
150
+ function toInt1000(UFixed a) public pure returns (uint256) {
151
+ return toIntWithRounding(toUFixed(1000) * a, ROUNDING_HALF_UP());
152
+ }
153
+
239
154
  /// @dev Converts a UFixed to a uint256 with given rounding mode.
240
155
  function toIntWithRounding(UFixed a, uint8 rounding) public pure returns (uint256) {
241
156
  if (rounding == ROUNDING_HALF_UP()) {
242
157
  return
243
- MathLib.mulDiv(
158
+ Math.mulDiv(
244
159
  UFixed.unwrap(a) + MULTIPLIER_HALF,
245
160
  1,
246
161
  MULTIPLIER,
247
- MathLib.Rounding.Down
162
+ Math.Rounding.Floor
248
163
  );
249
164
  } else if (rounding == ROUNDING_DOWN()) {
250
165
  return
251
- MathLib.mulDiv(
166
+ Math.mulDiv(
252
167
  UFixed.unwrap(a),
253
168
  1,
254
169
  MULTIPLIER,
255
- MathLib.Rounding.Down
170
+ Math.Rounding.Floor
256
171
  );
257
172
  } else {
258
173
  return
259
- MathLib.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, MathLib.Rounding.Up);
174
+ Math.mulDiv(UFixed.unwrap(a), 1, MULTIPLIER, Math.Rounding.Ceil);
260
175
  }
261
176
  }
262
177
 
@@ -319,6 +234,10 @@ library UFixedLib {
319
234
  return UFixed.wrap(0);
320
235
  }
321
236
 
237
+ function one() public pure returns (UFixed) {
238
+ return UFixed.wrap(MULTIPLIER);
239
+ }
240
+
322
241
  /// @dev return the absolute delta between two UFixed numbers
323
242
  function delta(UFixed a, UFixed b) public pure returns (UFixed) {
324
243
  return deltaUFixed(a, b);
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  type VersionPart is uint8;
5
5
 
@@ -7,7 +7,9 @@ using {
7
7
  versionPartGt as >,
8
8
  versionPartEq as ==,
9
9
  versionPartNe as !=,
10
- VersionPartLib.toInt
10
+ VersionPartLib.eqz,
11
+ VersionPartLib.toInt,
12
+ VersionPartLib.isValidRelease
11
13
  }
12
14
  for VersionPart global;
13
15
 
@@ -16,8 +18,17 @@ function versionPartEq(VersionPart a, VersionPart b) pure returns(bool isSame) {
16
18
  function versionPartNe(VersionPart a, VersionPart b) pure returns(bool isSame) { return VersionPart.unwrap(a) != VersionPart.unwrap(b); }
17
19
 
18
20
  library VersionPartLib {
19
- function toInt(VersionPart a) external pure returns(uint) { return VersionPart.unwrap(a); }
20
- function toVersionPart(uint256 a) external pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
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
+
29
+ function eqz(VersionPart a) external pure returns(bool) { return VersionPart.unwrap(a) == 0; }
30
+ function toInt(VersionPart a) external pure returns(uint256) { return VersionPart.unwrap(a); }
31
+ function toVersionPart(uint256 a) public pure returns(VersionPart) { return VersionPart.wrap(uint8(a)); }
21
32
  }
22
33
 
23
34
  type Version is uint24; // contains major,minor,patch version parts
@@ -36,6 +47,7 @@ function versionGt(Version a, Version b) pure returns(bool isGreaterThan) { retu
36
47
  function versionEq(Version a, Version b) pure returns(bool isSame) { return Version.unwrap(a) == Version.unwrap(b); }
37
48
 
38
49
  library VersionLib {
50
+
39
51
  function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
40
52
 
41
53
  function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
@@ -73,9 +85,9 @@ library VersionLib {
73
85
  );
74
86
  }
75
87
 
76
- function toVersionPart(uint256 versionPart) external pure returns(VersionPart) {
77
- return VersionPart.wrap(uint8(versionPart));
78
- }
88
+ // function toVersionPart(uint256 versionPart) public pure returns(VersionPart) {
89
+ // return VersionPart.wrap(uint8(versionPart));
90
+ // }
79
91
 
80
92
  function toVersion(
81
93
  uint256 major,
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Version} from "../types/Version.sol";
4
+ import {Version} from "../type/Version.sol";
5
5
 
6
6
  /// IMPORTANT
7
7
  // Upgradeable contract MUST:
@@ -1,16 +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
- import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
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";
11
- import {Timestamp, TimestampLib} from "../types/Timestamp.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {NftOwnable} from "../shared/NftOwnable.sol";
11
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
12
12
  import {UpgradableProxyWithAdmin} from "./UpgradableProxyWithAdmin.sol";
13
- import {Version, VersionLib} from "../types/Version.sol";
13
+ import {Version, VersionLib} from "../type/Version.sol";
14
14
 
15
15
  /// @dev manages proxy deployments for upgradable contracs of type IVersionable
16
16
  contract ProxyManager is
@@ -40,43 +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 ErrorProxyManagerAlreadyDeployed();
65
- }
72
+ (
73
+ address currentProxyOwner,
74
+ address initialProxyAdminOwner
75
+ ) = _preDeployChecksAndSetup(registry);
66
76
 
67
- address currentProxyOwner = getOwner(); // used by implementation
68
- address initialProxyAdminOwner = address(this); // used by proxy
69
-
70
77
  _proxy = new UpgradableProxyWithAdmin(
71
78
  initialImplementation,
72
79
  initialProxyAdminOwner,
73
80
  getDeployData(currentProxyOwner, initializationData)
74
81
  );
75
82
 
76
- versionable = IVersionable(address(_proxy));
77
- _updateVersionHistory(versionable.getVersion(), initialImplementation, currentProxyOwner);
83
+ versionable = _updateVersionHistory(
84
+ initialImplementation,
85
+ currentProxyOwner);
78
86
 
79
- emit LogProxyManagerVersionableDeployed(address(_proxy), initialImplementation);
87
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
88
+ }
89
+
90
+ function deployDetermenistic(
91
+ address registry,
92
+ address initialImplementation,
93
+ bytes memory initializationData,
94
+ bytes32 salt
95
+ )
96
+ public
97
+ virtual
98
+ onlyInitializing()
99
+ returns (IVersionable versionable)
100
+ {
101
+ (
102
+ address currentProxyOwner,
103
+ address initialProxyAdminOwner
104
+ ) = _preDeployChecksAndSetup(registry);
105
+
106
+ _proxy = new UpgradableProxyWithAdmin{salt: salt}(
107
+ initialImplementation,
108
+ initialProxyAdminOwner,
109
+ getDeployData(currentProxyOwner, initializationData)
110
+ );
111
+
112
+ versionable = _updateVersionHistory(
113
+ initialImplementation,
114
+ currentProxyOwner);
115
+
116
+ emit LogProxyManagerVersionableDeployed(address(versionable), initialImplementation);
80
117
  }
81
118
 
82
119
  /// @dev upgrade existing contract
@@ -99,11 +136,16 @@ contract ProxyManager is
99
136
  newImplementation,
100
137
  getUpgradeData(upgradeData));
101
138
 
102
- versionable = IVersionable(address(_proxy));
103
- _updateVersionHistory(versionable.getVersion(), newImplementation, currentProxyOwner);
139
+ versionable = _updateVersionHistory(
140
+ newImplementation,
141
+ currentProxyOwner);
142
+
143
+ emit LogProxyManagerVersionableUpgraded(address(versionable), newImplementation);
104
144
 
105
- emit LogProxyManagerVersionableUpgraded(address(_proxy), newImplementation);
145
+ }
106
146
 
147
+ function linkToProxy() public returns (NftId) {
148
+ return _linkToNftOwnable(address(_proxy));
107
149
  }
108
150
 
109
151
  function getDeployData(address proxyOwner, bytes memory deployData) public pure returns (bytes memory data) {
@@ -119,7 +161,7 @@ contract ProxyManager is
119
161
  upgradeData);
120
162
  }
121
163
 
122
- function getProxy() public returns (UpgradableProxyWithAdmin) {
164
+ function getProxy() public view returns (UpgradableProxyWithAdmin) {
123
165
  return _proxy;
124
166
  }
125
167
 
@@ -139,13 +181,34 @@ contract ProxyManager is
139
181
  return _versionHistory[_version];
140
182
  }
141
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
+
142
202
  function _updateVersionHistory(
143
- Version newVersion,
144
203
  address implementation,
145
204
  address activatedBy
146
205
  )
147
206
  private
207
+ returns (IVersionable versionable)
148
208
  {
209
+ versionable = IVersionable(address(_proxy));
210
+ Version newVersion = versionable.getVersion();
211
+
149
212
  if(newVersion == VersionLib.zeroVersion()) {
150
213
  revert ErrorProxyManagerZeroVersion();
151
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
 
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
4
4
  import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
5
 
6
6
  import {IVersionable} from "./IVersionable.sol";
7
- import {Version, VersionLib} from "../types/Version.sol";
7
+ import {Version, VersionLib} from "../type/Version.sol";
8
8
 
9
9
 
10
10
  abstract contract Versionable is
@@ -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-be8b3db-650",
3
+ "version": "0.0.2-bf018c6-898",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -30,10 +30,11 @@
30
30
  "homepage": "https://github.com/etherisc/gif-next#readme",
31
31
  "devDependencies": {
32
32
  "@nomicfoundation/hardhat-foundry": "^1.1.1",
33
- "@nomicfoundation/hardhat-toolbox": "^3.0.0",
34
- "@nomicfoundation/hardhat-verify": "^1.1.1",
35
- "@typescript-eslint/eslint-plugin": "^7.1.0",
36
- "@typescript-eslint/parser": "^7.1.0",
33
+ "@nomicfoundation/hardhat-toolbox": "^5.0.0",
34
+ "@nomicfoundation/hardhat-verify": "^2.0.1",
35
+ "@typescript-eslint/eslint-plugin": "^8.1.0",
36
+ "@typescript-eslint/parser": "^8.1.0",
37
+ "antlr4ng-cli": "^2.0.0",
37
38
  "dotenv": "^16.3.1",
38
39
  "eslint": "^8.50.0",
39
40
  "hardhat": "^2.17.2",
@@ -42,10 +43,13 @@
42
43
  "typescript": "^5"
43
44
  },
44
45
  "dependencies": {
45
- "@openzeppelin/contracts": "5.0.0",
46
- "@openzeppelin/contracts-upgradeable": "5.0.0",
46
+ "@openzeppelin/contracts": "5.0.2",
47
+ "@openzeppelin/contracts-upgradeable": "5.0.2",
48
+ "@openzeppelin/upgrades-core": "^1.34.1",
47
49
  "abi-coder": "^5.0.0",
50
+ "antlr4ng": "^3.0.4",
48
51
  "ethers": "^6.7.1",
52
+ "ethers-decode-error": "^2.1.3",
49
53
  "solidity-docgen": "^0.6.0-beta.36",
50
54
  "winston": "^3.10.0"
51
55
  }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/e8a68cf685567952cb431e8347372053.json"
4
- }