@etherisc/gif-next 0.0.2-5704731-511 → 0.0.2-5717aaa-704

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 (767) hide show
  1. package/README.md +146 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -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 +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +939 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +268 -299
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +612 -341
  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 +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
  53. package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +408 -0
  54. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
  55. package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1198 -0
  56. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
  57. package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +805 -0
  58. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
  60. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2185 -0
  64. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +805 -0
  66. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
  67. package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +376 -0
  68. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
  69. package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
  70. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  71. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
  72. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  73. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  74. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  75. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  76. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  77. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  78. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  79. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  80. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  81. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  82. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  83. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  84. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
  86. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  88. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  90. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  91. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +584 -1766
  92. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +606 -81
  94. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  95. package/artifacts/contracts/instance/Instance.sol/Instance.json +634 -2566
  96. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  97. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
  98. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  99. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +837 -0
  100. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  101. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1960 -618
  102. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +596 -291
  104. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +202 -131
  106. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  107. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  108. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  109. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  110. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  111. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  112. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  113. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  114. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  115. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  116. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  117. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  118. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  119. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  120. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  121. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  122. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  123. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  124. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  125. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  126. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  127. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  128. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  129. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  130. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  131. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  132. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  133. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  134. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +805 -0
  135. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  136. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  137. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  138. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +282 -250
  139. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  140. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +379 -157
  141. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  142. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +269 -238
  143. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  144. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  145. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  146. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  147. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  148. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +334 -458
  149. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  150. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  151. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  152. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  153. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  154. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  155. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  156. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  157. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  158. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +318 -377
  159. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  160. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  161. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  162. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  163. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  164. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  165. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  166. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  167. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  168. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  169. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  170. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  171. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  173. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  174. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +452 -460
  175. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  176. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  177. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  178. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  179. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  180. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  181. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  182. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  183. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  184. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  185. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  186. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  187. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  188. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +243 -147
  189. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  190. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  191. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  192. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IRiskService.sol/IRiskService.json} +282 -247
  193. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  194. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  195. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  196. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  197. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  198. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  199. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  200. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  201. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  202. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  203. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  204. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → product/Product.sol/Product.json} +455 -667
  205. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  206. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  207. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  208. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  209. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  210. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  211. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +499 -34
  213. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  214. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +306 -124
  215. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  216. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  217. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  218. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  219. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  220. package/artifacts/contracts/registry/Registry.sol/Registry.json +987 -131
  221. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  222. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
  223. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  224. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  225. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  226. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +381 -260
  227. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  228. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +213 -110
  229. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  230. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  231. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  232. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  233. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  234. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  235. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  236. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  237. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  238. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
  239. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  240. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +325 -182
  241. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  242. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  243. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  244. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  245. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  246. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  247. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  248. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  249. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  250. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  251. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  252. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  253. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  254. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +225 -110
  255. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  256. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  257. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  258. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  259. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  260. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  261. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  262. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  263. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  264. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  265. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  266. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  267. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  268. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  269. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  270. package/artifacts/contracts/shared/IService.sol/IService.json +177 -18
  271. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  272. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  273. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  274. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  275. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  276. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  277. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  278. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  279. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  280. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -70
  281. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  282. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  283. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  284. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +145 -100
  285. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  286. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  287. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  288. package/artifacts/contracts/shared/Service.sol/Service.json +163 -106
  289. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  290. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  291. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  292. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  293. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  294. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  295. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  296. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  297. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  298. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  299. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  300. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  301. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  302. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  303. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  304. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  305. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  306. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +847 -0
  307. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  308. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  309. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  310. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  311. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  312. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  313. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  314. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  315. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  316. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  317. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  318. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  319. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  320. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  321. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  323. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  325. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  327. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  329. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  331. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  333. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  335. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  336. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  337. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  339. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  340. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  341. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +238 -0
  343. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  345. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +161 -0
  347. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  348. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  349. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.dbg.json +4 -0
  350. package/artifacts/contracts/type/RequestIdSet.sol/RequestIdSet.json +33 -0
  351. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  352. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  353. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  354. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  355. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  356. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +308 -0
  357. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  358. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  359. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  360. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  361. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  362. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  363. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  364. package/artifacts/contracts/type/String.sol/StrLib.json +199 -0
  365. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  366. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +344 -0
  367. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  368. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  369. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  370. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  371. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  372. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  373. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  374. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  375. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  376. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  377. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  378. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  379. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  380. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  381. package/contracts/accounting/AccountingService.sol +274 -0
  382. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  383. package/contracts/accounting/IAccountingService.sol +47 -0
  384. package/contracts/authorization/AccessAdmin.sol +780 -0
  385. package/contracts/authorization/AccessAdminLib.sol +396 -0
  386. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  387. package/contracts/authorization/Authorization.sol +169 -0
  388. package/contracts/authorization/IAccess.sol +67 -0
  389. package/contracts/authorization/IAccessAdmin.sol +144 -0
  390. package/contracts/authorization/IAuthorization.sol +26 -0
  391. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  392. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  393. package/contracts/distribution/BasicDistribution.sol +140 -0
  394. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  395. package/contracts/distribution/Distribution.sol +245 -0
  396. package/contracts/distribution/DistributionService.sol +448 -0
  397. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  398. package/contracts/distribution/IDistributionComponent.sol +45 -0
  399. package/contracts/distribution/IDistributionService.sol +115 -0
  400. package/contracts/examples/fire/DamageLevel.sol +59 -0
  401. package/contracts/examples/fire/FirePool.sol +86 -0
  402. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  403. package/contracts/examples/fire/FireProduct.sol +433 -0
  404. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  405. package/contracts/examples/fire/FireUSD.sol +26 -0
  406. package/contracts/examples/flight/FlightLib.sol +279 -0
  407. package/contracts/examples/flight/FlightOracle.sol +167 -0
  408. package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
  409. package/contracts/examples/flight/FlightPool.sol +89 -0
  410. package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
  411. package/contracts/examples/flight/FlightProduct.sol +470 -0
  412. package/contracts/examples/flight/FlightProductAuthorization.sol +44 -0
  413. package/contracts/examples/flight/FlightUSD.sol +26 -0
  414. package/contracts/examples/flight/originalV1.sol +396 -0
  415. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  416. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  417. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  418. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  419. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  420. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  421. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  422. package/contracts/instance/BaseStore.sol +93 -0
  423. package/contracts/instance/BundleSet.sol +130 -0
  424. package/contracts/instance/IBaseStore.sol +37 -0
  425. package/contracts/instance/IInstance.sol +131 -73
  426. package/contracts/instance/IInstanceService.sol +86 -39
  427. package/contracts/instance/Instance.sol +248 -224
  428. package/contracts/instance/InstanceAdmin.sol +379 -0
  429. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  430. package/contracts/instance/InstanceReader.sol +535 -191
  431. package/contracts/instance/InstanceService.sol +411 -392
  432. package/contracts/instance/InstanceServiceManager.sol +14 -29
  433. package/contracts/instance/InstanceStore.sol +323 -0
  434. package/contracts/instance/ProductStore.sol +290 -0
  435. package/contracts/instance/RiskSet.sol +126 -0
  436. package/contracts/instance/TargetNames.sol +10 -0
  437. package/contracts/instance/base/BalanceStore.sol +121 -0
  438. package/contracts/instance/base/Cloneable.sol +28 -0
  439. package/contracts/instance/base/ObjectCounter.sol +20 -0
  440. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  441. package/contracts/instance/base/ObjectSet.sol +77 -0
  442. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  443. package/contracts/instance/module/IBundle.sol +10 -10
  444. package/contracts/instance/module/IComponents.sol +43 -18
  445. package/contracts/instance/module/IDistribution.sol +25 -12
  446. package/contracts/instance/module/IPolicy.sol +71 -38
  447. package/contracts/instance/module/IRisk.sol +6 -1
  448. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  449. package/contracts/oracle/BasicOracle.sol +44 -0
  450. package/contracts/oracle/BasicOracleAuthorization.sol +52 -0
  451. package/contracts/oracle/IOracle.sol +41 -0
  452. package/contracts/oracle/IOracleComponent.sol +33 -0
  453. package/contracts/oracle/IOracleService.sol +66 -0
  454. package/contracts/oracle/Oracle.sol +152 -0
  455. package/contracts/oracle/OracleService.sol +310 -0
  456. package/contracts/oracle/OracleServiceManager.sol +39 -0
  457. package/contracts/pool/BasicPool.sol +161 -0
  458. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  459. package/contracts/pool/BundleService.sol +386 -0
  460. package/contracts/pool/BundleServiceManager.sol +39 -0
  461. package/contracts/pool/IBundleService.sol +116 -0
  462. package/contracts/pool/IPoolComponent.sol +62 -0
  463. package/contracts/pool/IPoolService.sol +170 -0
  464. package/contracts/pool/Pool.sol +331 -0
  465. package/contracts/pool/PoolLib.sol +341 -0
  466. package/contracts/pool/PoolService.sol +614 -0
  467. package/contracts/pool/PoolServiceManager.sol +39 -0
  468. package/contracts/product/ApplicationService.sol +327 -0
  469. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  470. package/contracts/product/BasicProduct.sol +48 -0
  471. package/contracts/product/BasicProductAuthorization.sol +64 -0
  472. package/contracts/product/ClaimService.sol +626 -0
  473. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  474. package/contracts/{instance/service → product}/IApplicationService.sol +41 -35
  475. package/contracts/product/IClaimService.sol +136 -0
  476. package/contracts/product/IPolicyService.sol +102 -0
  477. package/contracts/product/IPricingService.sol +40 -0
  478. package/contracts/product/IProductComponent.sol +62 -0
  479. package/contracts/product/IRiskService.sol +48 -0
  480. package/contracts/product/PolicyService.sol +645 -0
  481. package/contracts/product/PolicyServiceLib.sol +139 -0
  482. package/contracts/product/PolicyServiceManager.sol +39 -0
  483. package/contracts/product/PricingService.sol +306 -0
  484. package/contracts/product/PricingServiceManager.sol +39 -0
  485. package/contracts/product/Product.sol +491 -0
  486. package/contracts/product/RiskService.sol +189 -0
  487. package/contracts/product/RiskServiceManager.sol +39 -0
  488. package/contracts/registry/ChainNft.sol +79 -40
  489. package/contracts/registry/IRegistry.sol +104 -33
  490. package/contracts/registry/IRegistryService.sol +36 -41
  491. package/contracts/registry/IRelease.sol +29 -0
  492. package/contracts/registry/ITransferInterceptor.sol +1 -2
  493. package/contracts/registry/Registry.sol +469 -200
  494. package/contracts/registry/RegistryAdmin.sol +191 -0
  495. package/contracts/registry/RegistryAuthorization.sol +336 -0
  496. package/contracts/registry/RegistryService.sol +90 -132
  497. package/contracts/registry/RegistryServiceManager.sol +23 -32
  498. package/contracts/registry/ReleaseAdmin.sol +195 -0
  499. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  500. package/contracts/registry/ReleaseRegistry.sol +525 -0
  501. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  502. package/contracts/registry/TokenRegistry.sol +265 -64
  503. package/contracts/shared/Component.sol +210 -0
  504. package/contracts/shared/ComponentService.sol +691 -0
  505. package/contracts/shared/ComponentServiceManager.sol +38 -0
  506. package/contracts/shared/ContractLib.sol +312 -0
  507. package/contracts/shared/IComponent.sol +58 -0
  508. package/contracts/shared/IComponentService.sol +111 -0
  509. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  510. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  511. package/contracts/shared/INftOwnable.sol +6 -2
  512. package/contracts/shared/IPolicyHolder.sol +23 -14
  513. package/contracts/shared/IRegisterable.sol +22 -1
  514. package/contracts/shared/IRegistryLinked.sol +0 -1
  515. package/contracts/shared/IService.sol +12 -7
  516. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  517. package/contracts/shared/InstanceLinkedComponent.sol +232 -0
  518. package/contracts/shared/Lifecycle.sol +88 -0
  519. package/contracts/shared/NftIdSet.sol +65 -0
  520. package/contracts/shared/NftOwnable.sol +36 -27
  521. package/contracts/shared/PolicyHolder.sol +23 -41
  522. package/contracts/shared/Registerable.sol +52 -20
  523. package/contracts/shared/RegistryLinked.sol +9 -19
  524. package/contracts/shared/Service.sol +38 -29
  525. package/contracts/shared/TokenHandler.sol +322 -13
  526. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  527. package/contracts/staking/IStaking.sol +367 -0
  528. package/contracts/staking/IStakingService.sol +127 -0
  529. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  530. package/contracts/staking/Staking.sol +797 -0
  531. package/contracts/staking/StakingLib.sol +195 -0
  532. package/contracts/staking/StakingManager.sol +53 -0
  533. package/contracts/staking/StakingReader.sol +171 -0
  534. package/contracts/staking/StakingService.sol +321 -0
  535. package/contracts/staking/StakingServiceManager.sol +46 -0
  536. package/contracts/staking/StakingStore.sol +1368 -0
  537. package/contracts/staking/TargetHandler.sol +132 -0
  538. package/contracts/staking/TargetManagerLib.sol +234 -0
  539. package/contracts/{types → type}/AddressSet.sol +1 -1
  540. package/contracts/type/Amount.sol +154 -0
  541. package/contracts/{types → type}/Blocknumber.sol +36 -13
  542. package/contracts/type/ChainId.sol +101 -0
  543. package/contracts/{types → type}/ClaimId.sol +31 -3
  544. package/contracts/type/Fee.sol +66 -0
  545. package/contracts/{types → type}/Key32.sol +2 -2
  546. package/contracts/type/Key32Set.sol +62 -0
  547. package/contracts/{types → type}/NftId.sol +21 -16
  548. package/contracts/{types → type}/NftIdSet.sol +2 -2
  549. package/contracts/type/ObjectType.sol +278 -0
  550. package/contracts/type/PayoutId.sol +82 -0
  551. package/contracts/{types → type}/Referral.sol +8 -1
  552. package/contracts/type/RequestId.sol +75 -0
  553. package/contracts/type/RequestIdSet.sol +62 -0
  554. package/contracts/type/RiskId.sol +75 -0
  555. package/contracts/type/RoleId.sol +180 -0
  556. package/contracts/type/Seconds.sol +124 -0
  557. package/contracts/type/Selector.sol +107 -0
  558. package/contracts/{types → type}/StateId.sol +47 -4
  559. package/contracts/type/String.sol +95 -0
  560. package/contracts/{types → type}/Timestamp.sol +33 -8
  561. package/contracts/type/UFixed.sol +263 -0
  562. package/contracts/{types → type}/Version.sol +58 -7
  563. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  564. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  565. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  566. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  567. package/package.json +12 -8
  568. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  569. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  570. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  571. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  572. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  573. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  574. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  575. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  576. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  577. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  578. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  579. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  580. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  581. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  582. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1311
  583. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  585. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  587. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  588. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  589. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  590. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  591. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  592. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  593. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  594. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  595. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  596. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  597. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  599. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  600. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  601. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  602. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  603. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  604. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  605. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  607. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  609. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
  611. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  613. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  615. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  617. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  618. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  619. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  620. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  621. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  622. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -384
  623. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  624. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  625. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  626. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  627. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  628. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
  629. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  630. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  631. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  632. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  633. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  634. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  635. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  636. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  637. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  638. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  639. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  640. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  641. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  642. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  643. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  644. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  645. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  646. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  647. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  648. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  649. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  650. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  651. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  652. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  653. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  654. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  655. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  656. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  657. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  658. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  659. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  660. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  661. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  662. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  663. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  664. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  665. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  666. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  667. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  669. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  670. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  671. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  672. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  673. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  674. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  675. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  676. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  677. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  678. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  679. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  680. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  681. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  682. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  683. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  684. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  685. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  686. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  687. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  688. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  689. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  690. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  691. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  692. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  693. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  694. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  695. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  696. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  697. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  698. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  699. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  700. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  701. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  702. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  703. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  704. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  705. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  706. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  707. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  708. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  709. package/contracts/components/Component.sol +0 -251
  710. package/contracts/components/Distribution.sol +0 -280
  711. package/contracts/components/IComponent.sol +0 -74
  712. package/contracts/components/IDistributionComponent.sol +0 -71
  713. package/contracts/components/IPoolComponent.sol +0 -113
  714. package/contracts/components/IProductComponent.sol +0 -40
  715. package/contracts/components/Pool.sol +0 -299
  716. package/contracts/components/Product.sol +0 -293
  717. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  718. package/contracts/instance/BundleManager.sol +0 -127
  719. package/contracts/instance/Cloneable.sol +0 -51
  720. package/contracts/instance/InstanceAccessManager.sol +0 -522
  721. package/contracts/instance/ObjectManager.sol +0 -82
  722. package/contracts/instance/base/ComponentService.sol +0 -134
  723. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  724. package/contracts/instance/base/KeyValueStore.sol +0 -175
  725. package/contracts/instance/base/Lifecycle.sol +0 -109
  726. package/contracts/instance/module/IAccess.sol +0 -54
  727. package/contracts/instance/module/ISetup.sol +0 -33
  728. package/contracts/instance/module/ITreasury.sol +0 -23
  729. package/contracts/instance/service/ApplicationService.sol +0 -350
  730. package/contracts/instance/service/BundleService.sol +0 -336
  731. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  732. package/contracts/instance/service/ClaimService.sol +0 -151
  733. package/contracts/instance/service/DistributionService.sol +0 -467
  734. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  735. package/contracts/instance/service/IBundleService.sol +0 -62
  736. package/contracts/instance/service/IClaimService.sol +0 -61
  737. package/contracts/instance/service/IDistributionService.sol +0 -98
  738. package/contracts/instance/service/IPolicyService.sol +0 -72
  739. package/contracts/instance/service/IPoolService.sol +0 -35
  740. package/contracts/instance/service/IProductService.sol +0 -40
  741. package/contracts/instance/service/PolicyService.sol +0 -403
  742. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  743. package/contracts/instance/service/PoolService.sol +0 -220
  744. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  745. package/contracts/instance/service/ProductService.sol +0 -241
  746. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  747. package/contracts/registry/RegistryAccessManager.sol +0 -216
  748. package/contracts/registry/ReleaseManager.sol +0 -322
  749. package/contracts/shared/ContractDeployerLib.sol +0 -72
  750. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  751. package/contracts/test/TestFee.sol +0 -25
  752. package/contracts/test/TestRegisterable.sol +0 -18
  753. package/contracts/test/TestRoleId.sol +0 -14
  754. package/contracts/test/TestService.sol +0 -25
  755. package/contracts/test/TestToken.sol +0 -26
  756. package/contracts/test/TestVersion.sol +0 -44
  757. package/contracts/test/TestVersionable.sol +0 -17
  758. package/contracts/types/ChainId.sol +0 -38
  759. package/contracts/types/Fee.sol +0 -57
  760. package/contracts/types/NumberId.sol +0 -52
  761. package/contracts/types/ObjectType.sol +0 -157
  762. package/contracts/types/PayoutId.sol +0 -54
  763. package/contracts/types/RiskId.sol +0 -43
  764. package/contracts/types/RoleId.sol +0 -97
  765. package/contracts/types/Seconds.sol +0 -54
  766. package/contracts/types/UFixed.sol +0 -326
  767. /package/contracts/{types → type}/DistributorType.sol +0 -0
package/README.md CHANGED
@@ -1,18 +1,6 @@
1
1
  # GIF-Next (Generic Insurance Framework, next version)
2
2
 
3
3
 
4
- ```mermaid
5
- graph TD
6
- IPoolComponent --> IComponent
7
- IComponent --> IRegisterable
8
- IComponent --> ITransferInterceptor
9
- IRegistryService --> IService
10
- IService-->IRegisterable
11
- IService-->IVersionable
12
- IRegisterable-->INftOwnable
13
- INftOwnable-->IERC165
14
- ```
15
-
16
4
  ## Add OpenZeppelin V5 Dependencies
17
5
 
18
6
  ```shell
@@ -40,6 +28,16 @@ This repository uses submodules. To checkout or update to the latest submodules,
40
28
  git submodule update --recursive
41
29
  ```
42
30
 
31
+ For initial checkout call
32
+
33
+ ```shell
34
+ git submodule update --init --recursive
35
+ ```
36
+
37
+ ## Example components
38
+
39
+ A (very early) example of a product and a pool can be found in the [gif-next-sandbox repository](https://github.com/etherisc/gif-next-sandbox).
40
+
43
41
  ## Hardhat
44
42
 
45
43
  ### NPM Commands
@@ -72,28 +70,57 @@ Install the dependencies before running the script below for the first time.
72
70
  npm install
73
71
  ```
74
72
 
75
- The deploy script will deploy all required contracts and create a test instance with a test product and a test pool.
73
+ The deploy script will deploy all required contracts for gif and create a test instance.
76
74
 
77
75
  ```bash
78
76
  # run deployment on a locally created ganache instance
79
- export SKIP_VERIFICATION=true
80
- hh run scripts/deploy_all.ts
77
+ hh run scripts/deploy_gif.ts
81
78
  ```
82
79
 
83
80
  ```bash
84
81
  # set appropriate values vor env variables (see below)
85
82
 
86
83
  # run deployment on another network
87
- hh run --network <networkname> scripts/deploy_all.ts
84
+ hh run --network <networkname> scripts/deploy_gif.ts
85
+ ```
86
+
87
+ The deployment will persist deployment information into the files `deployments/<chainid>/deployment_state.json`, `deployments/<chainid>/libraries.json` and `deployments/<chainid>/verification_log.json`.
88
+ This data can then be used for verification of the deployed contracts on etherscan/polygonscan.
89
+
90
+ For the verification of the contracts on etherscan/polygonscan the above files (created by previous deployment) are required and then the following command can be used:
91
+
92
+ ```bash
93
+ hh run --network <networkname> scripts/verify_deployment.ts
88
94
  ```
89
95
 
90
96
  Environment variables:
91
97
 
92
- - `SKIP_VERIFICATION` set to `true` to skip etherscan verification (required for ganacht and anvil)
93
- - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
98
+ - `WRITE_ADDRESSES_TO_FILE` set to `true` to write the addresses of the deployed contracts to a file (default: `false`)
99
+ - `RESUMEABLE_DEPLOYMENT` set to `true` to have all (deployment) transactions written to a state file so the script can be resumed after a failure (or after a manual stop) (default: `false`)
100
+ - `GAS_PRICE` set to the gas price to use for deployment (default: `undefined`)
94
101
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
102
+
103
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
95
104
  - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
96
105
 
106
+ ### Deploy full protocol with fire example components
107
+
108
+ ```bash
109
+ hh run scripts/deploy_all.ts
110
+ ```
111
+
112
+ Like before, use the `--network` option to deploy on a different network.
113
+
114
+ ### Deploy only the fire example components
115
+
116
+ ```bash
117
+ hh run scripts/deploy_fire_components.ts
118
+ ```
119
+
120
+ Ensure that the deployment runs on a chain where a compatible version of the GIF is already deployed. Then ensure the correct environment variables are set. An up to date list of required environment variables can be found in the `deploy_fire_components.ts` script in the main method (just check the lines that contain a `process.env` statement). To be safe, set the environment variable `WRITE_ADDRESSES_TO_FILE` to `true` when deploying the gif and then copy all values from the generated `deployment.env` file to the `.env` file in the root directory of the repository before running the fire example deployment.
121
+
122
+ Like before, use the `--network` option to deploy on a different network.
123
+
97
124
  ### Create a new instance
98
125
 
99
126
  Requires previous step to be completed.
@@ -113,7 +140,6 @@ Environment variables:
113
140
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
114
141
  - `REGISTRY_ADDRESS` the address of the registry that is already deployed and configured and has a valid master instance
115
142
 
116
-
117
143
  ### Console
118
144
 
119
145
  ```
@@ -129,6 +155,27 @@ await provider.getBalance(me)
129
155
 
130
156
  https://hardhat.org/hardhat-runner/docs/guides/compile-contracts
131
157
 
158
+ ### Scripts to find syntax bugs in code
159
+
160
+ #### find methods missing the `restricted` modifier
161
+
162
+ ```bash
163
+ hh run scripts/find_unrestricted_methods.ts
164
+ ```
165
+
166
+ Checks all public/external methods in services and components for methods that are missing the `restricted` modifier but should have one.
167
+
168
+ The script `find_unrestricted_methods.ts` is based on the ANTLR grammar `Solidity.g4` (from https://github.com/solidity-parser/antlr) and uses the antlr4ng runtime (https://github.com/mike-lischke/antlr4ng).
169
+ To compile grammar to ts classes run `antlr4ng -Dlanguage=TypeScript -o antlr/generated/ -visitor -listener antlr/Solidity.g4` (requires openjdk to be installed `sudo apt install openjdk-17-jre-headless`).
170
+
171
+ #### find methods missing the `virtual` keyword
172
+
173
+ ```bash
174
+ hh run scripts/find_missing_virtual_methods.ts.ts
175
+ ```
176
+
177
+ Checks all public/external methods in services and components for methods that are not marked as `virtual` but should be.
178
+
132
179
  ## Forge
133
180
 
134
181
  ### Commands
@@ -154,11 +201,31 @@ forge test --mt test_decimals --gas-report
154
201
  # provide code coverage report
155
202
  forge coverage
156
203
  forge coverage --report lcov
204
+ ```
157
205
 
206
+ ### Aliases
158
207
 
159
- ```
160
208
 
161
- Chisel session
209
+ | Alias | Command |
210
+ | --- | --- |
211
+ | fb | forge build |
212
+ | fbw | forge build --watch |
213
+ | fbc | forge build contracts/ |
214
+ | fbcw | forge build --watch contracts/ |
215
+ | ft | forge test |
216
+ | ftf | forge test --nmt "_longRunning" |
217
+ | ftt | forge test -vvvv --mt |
218
+ | fttg | forge test -vvvv --gas-report --mt |
219
+ | fttw | forge test -vvvv --watch --mt |
220
+ | ftc | forge test -vvvv --mc |
221
+ | ftcw | forge test -vvvv --watch --mc |
222
+ | fcf | forge coverage --nmt "_longRunning" |
223
+ | fcfr | forge coverage --nmt "_longRunning" --report lcov |
224
+
225
+ **Important**: All profiles are run using the foundry `ci` profile which disables the optimizer (for speed).
226
+
227
+ ### Chisel session
228
+
162
229
  ```typescript
163
230
  import "./contracts/components/Component.sol";
164
231
  import "./contracts/components/IPool.sol";
@@ -232,17 +299,7 @@ https://book.getfoundry.sh/reference/
232
299
 
233
300
  ## Style Guide
234
301
 
235
- Solidity code is to be written according to the [Solidity Style Guide](https://docs.soliditylang.org/en/latest/style-guide.html).
236
-
237
- Documentation of the code should be written inline using [NatSpec](https://docs.soliditylang.org/en/latest/natspec-format.html).
238
-
239
- ### Naming conventions
240
-
241
- Additionally, we use the following naming conventions:
242
-
243
- - Function arguments and return types: If using custom data types, make the name include the type by appending the Type to the argument name, e.g. `function getInfo(NftId bundleNftId)` instead of `function getInfo(NftId bundleId)`. Background: Custom data types are lost when using the ABI or Typescript binding classes (e.g. instead of `NftID` a `uint96` is used), so the type needs to be included in the name to make it clear what the argument is without having to look at the documentation or checking the solidity source code.
244
- - When naming a field or an attribute `id` and the context is not clear, call it `nftId` instead so its clear what type if id it is as there will be multiple ids for different kind of objects. Example: if you the function has a bundle nft id and a policy nft id as arguments, call them `bundleNftId` and `policyNftId` instead of `id` and `policyId`. In case of doubt, be a bit more verbose for the sake of clarity.
245
- - When naming things, remember that the code will likely be used in Javascript/Typescript as well, so avoid names that are reserved in Javascript/Typescript. A list of reserved words in Javascript can be found [here](https://www.w3schools.com/js/js_reserved.asp) and a list of reserved words in Typescript can be found [here](https://www.tektutorialshub.com/typescript/identifiers-keywords-in-typescript/).
302
+ Please see https://docs.etherisc.com/gif-next/3.x/ for style guide and general coding rules.
246
303
 
247
304
  ### Automatic code formatting
248
305
 
@@ -257,7 +314,7 @@ We use solhint to lint the code.
257
314
  To execute linting run `npm run lint`.
258
315
 
259
316
 
260
- ### Adding Brownie (Legacy)
317
+ ### Adding Brownie (Legacy - don't do that :wink: )
261
318
 
262
319
  python3 is already installed
263
320
 
@@ -405,65 +462,6 @@ Intercepting property
405
462
 
406
463
  ### Product
407
464
 
408
- ### Payout Handling
409
-
410
- Pool specifies **retention level**.
411
- Retention level defines up to which percentage of the sum insured the pool is payout out using its own/current funds.
412
- Depending on the amount of a new payout the poolService decides to either execute the payout directly or to add the payout as a pending payout with a notification of the pool.
413
-
414
- The sequence below sketches the small payout flow (payout < retention amount)
415
- - retention level: 30%
416
- - sum insured: 1000
417
- - payout: 200
418
-
419
- ```mermaid
420
- sequenceDiagram
421
- participant customer
422
- participant product
423
- participant claimService
424
- participant poolService
425
- participant pool
426
- product->>claimService: createPayout()
427
- claimService ->> poolService: requestPayout()
428
- poolService -->> pool: verifyPayout() *
429
- poolService ->> poolService: processPayout()
430
- poolService ->> customer: transfer token for payout
431
- poolService ->> claimService: payoutExecuted()
432
- poolService -->> customer: payoutExecutedCallback() **
433
- ```
434
-
435
- *: if pool is configured to verify payouts before execution
436
-
437
- **: callback only if customer is contract (IPolicyHolder)
438
-
439
- The sequence below sketches the call flow for payouts larger than the retention amount
440
- - retention level: 30%
441
- - sum insured: 1000
442
- - payout: 500
443
- * locally available: 300
444
- * via policy (re-insurance): 200
445
-
446
- ```mermaid
447
- sequenceDiagram
448
- participant customer
449
- participant product
450
- participant claimService
451
- participant poolService
452
- participant pool
453
- pool ->> reinsuranceProduct: applyForPolicy()
454
- product->>claimService: createPayout()
455
- claimService ->> poolService: requestPayout()
456
- poolService ->> pool: pendingPayoutAdded()
457
- pool ->> pool: getReinsurancePolicy()
458
- pool ->> reinsuranceProduct: claim()
459
- reinsuranceProduct -->> reinsurancePool: createPayout
460
- reinsurancePool ->> pool: transfer token for payout
461
- reinsurancePool ->> pool: payoutExecutedCallback()
462
- pool ->> poolService: processPendingPayout()
463
- poolService ->> customer: transfer token for payout
464
- poolService ->> claimService: payoutExecuted()
465
- ```
466
-
467
465
  ### Pool
468
466
 
469
467
  ### Distribution
@@ -537,13 +535,14 @@ contracts
537
535
  ComponentService.sol
538
536
  instance
539
537
  Instance.sol
540
- InstanceAccessManager.sol
538
+ InstanceAdmin.sol
541
539
  InstanceReader.sol
542
540
  InstanceService.sol
543
541
  InstanceServiceManager.sol
544
542
  registry
545
543
  ChainNft.sol
546
544
  Registry.sol
545
+ RegistryAdmin.sol
547
546
  RegistryService.sol
548
547
  RegistryServiceManager.sol
549
548
  shared
@@ -553,3 +552,57 @@ contracts
553
552
  NftId.sol
554
553
  ObjectType.sol
555
554
 
555
+ ## Storage layout
556
+
557
+ ### Analysis tool
558
+
559
+ Command line call
560
+
561
+ ```bash
562
+ hh run scripts/analyze_storage_layout.ts
563
+ ```
564
+
565
+ Analyses contract `MockStorageLayout.sol` and writes the storage layout to `storage_layout.json` and `storage_layout.csv`.
566
+ New structs must be added to `MockStorageLayout` to be included in analysis.
567
+
568
+ Storage layout details:
569
+ - Items fill up the current slot if possible
570
+ - If not enough space is left in the current slot, the item is placed in the next slot
571
+ - Stucts and arrays always start a new slot
572
+ - Items following a struct or array always start a new slot
573
+
574
+ More at https://docs.soliditylang.org/en/latest/internals/layout_in_storage.html
575
+
576
+ ### Custom types sizes
577
+
578
+ | Type | Size |
579
+ | --- | --- |
580
+ | Amount | 12 bytes |
581
+ | Blocknumber | 4 bytes |
582
+ | ClaimId | 2 bytes |
583
+ | DistributorType | 8 bytes |
584
+ | NftId | 12 bytes |
585
+ | ObjectType | 1 byte |
586
+ | ReferralId | 8 bytes |
587
+ | RoleId | 1 byte |
588
+ | RiskId | 8 bytes |
589
+ | Seconds | 5 bytes |
590
+ | Selector | 4 bytes |
591
+ | StateId | 1 byte |
592
+ | Str | 32 bytes |
593
+ | Timestamp | 5 bytes |
594
+ | Version | 3 byte |
595
+ | VersionPart | 1 byte |
596
+ | UFixed | 20 bytes |
597
+ | address | 20 bytes |
598
+ | uint256 | 32 bytes |
599
+ | uint128 | 16 bytes |
600
+ | uint160 | 20 bytes |
601
+ | uint64 | 8 bytes |
602
+ | uint32 | 4 bytes |
603
+ | uint16 | 2 bytes |
604
+ | string | 32 bytes |
605
+ | bytes | 32 bytes |
606
+ | bytes8 | 8 byte |
607
+ | bool | 1 byte |
608
+
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/bcb3282232dd616f190d8fcdc867e590.json"
4
+ }