@etherisc/gif-next 0.0.2-b72409c-493 → 0.0.2-b75de7e-093

Sign up to get free protection for your applications and to get access to all the features.
Files changed (720) 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 +1379 -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 +542 -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 +1130 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -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 +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +235 -538
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1509 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +864 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +332 -286
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +327 -332
  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 +589 -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 +589 -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 +589 -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 +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +377 -1971
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +306 -114
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +441 -2766
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1929 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1718 -568
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +330 -338
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +157 -114
  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 -54
  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/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  105. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  106. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  113. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  114. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +290 -246
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  124. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +312 -416
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  131. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  132. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +386 -136
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  134. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +320 -367
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  137. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -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} +450 -446
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -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 +1064 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +273 -211
  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 +1333 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  179. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  180. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +483 -29
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +277 -124
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
  195. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  196. package/artifacts/contracts/registry/Registry.sol/Registry.json +982 -137
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +352 -260
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +164 -99
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +317 -154
  213. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  214. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  219. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  220. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +115 -182
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  230. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +224 -97
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  235. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  236. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  237. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  238. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +144 -3
  245. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  247. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  248. package/artifacts/contracts/shared/IService.sol/IService.json +148 -18
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  252. package/artifacts/contracts/{components/Component.sol/Component.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +201 -236
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -100
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  267. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  268. package/artifacts/contracts/shared/Service.sol/Service.json +134 -106
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  279. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  280. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  347. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  348. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  354. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  355. package/contracts/accounting/AccountingService.sol +262 -0
  356. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  357. package/contracts/accounting/IAccountingService.sol +45 -0
  358. package/contracts/authorization/AccessAdmin.sol +689 -0
  359. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  360. package/contracts/authorization/Authorization.sol +337 -0
  361. package/contracts/authorization/IAccess.sol +49 -0
  362. package/contracts/authorization/IAccessAdmin.sol +143 -0
  363. package/contracts/authorization/IAuthorization.sol +74 -0
  364. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  365. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  366. package/contracts/distribution/BasicDistribution.sol +141 -0
  367. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  368. package/contracts/{components → distribution}/Distribution.sol +173 -164
  369. package/contracts/distribution/DistributionService.sol +358 -0
  370. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  371. package/contracts/distribution/IDistributionComponent.sol +52 -0
  372. package/contracts/distribution/IDistributionService.sol +101 -0
  373. package/contracts/examples/fire/DamageLevel.sol +59 -0
  374. package/contracts/examples/fire/FirePool.sol +90 -0
  375. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  376. package/contracts/examples/fire/FireProduct.sol +438 -0
  377. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  378. package/contracts/examples/fire/FireUSD.sol +26 -0
  379. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  380. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  381. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  382. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  383. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  385. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  386. package/contracts/instance/BundleSet.sol +130 -0
  387. package/contracts/instance/IInstance.sol +48 -76
  388. package/contracts/instance/IInstanceService.sol +39 -39
  389. package/contracts/instance/Instance.sol +168 -248
  390. package/contracts/instance/InstanceAdmin.sol +437 -0
  391. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  392. package/contracts/instance/InstanceReader.sol +409 -62
  393. package/contracts/instance/InstanceService.sol +274 -365
  394. package/contracts/instance/InstanceServiceManager.sol +14 -29
  395. package/contracts/instance/InstanceStore.sol +298 -0
  396. package/contracts/instance/RiskSet.sol +118 -0
  397. package/contracts/instance/base/BalanceStore.sol +123 -0
  398. package/contracts/instance/base/Cloneable.sol +28 -0
  399. package/contracts/instance/base/ObjectCounter.sol +20 -0
  400. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  401. package/contracts/instance/base/ObjectSet.sol +77 -0
  402. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  403. package/contracts/instance/module/IBundle.sol +8 -9
  404. package/contracts/instance/module/IComponents.sol +28 -12
  405. package/contracts/instance/module/IDistribution.sol +8 -7
  406. package/contracts/instance/module/IPolicy.sol +48 -35
  407. package/contracts/instance/module/IRisk.sol +4 -1
  408. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  409. package/contracts/oracle/BasicOracle.sol +47 -0
  410. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  411. package/contracts/oracle/IOracle.sol +36 -0
  412. package/contracts/oracle/IOracleComponent.sol +33 -0
  413. package/contracts/oracle/IOracleService.sol +66 -0
  414. package/contracts/oracle/Oracle.sol +156 -0
  415. package/contracts/oracle/OracleService.sol +310 -0
  416. package/contracts/oracle/OracleServiceManager.sol +39 -0
  417. package/contracts/pool/BasicPool.sol +175 -0
  418. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  419. package/contracts/pool/BundleService.sol +395 -0
  420. package/contracts/pool/BundleServiceManager.sol +39 -0
  421. package/contracts/pool/IBundleService.sol +115 -0
  422. package/contracts/pool/IPoolComponent.sol +62 -0
  423. package/contracts/pool/IPoolService.sol +165 -0
  424. package/contracts/pool/Pool.sol +345 -0
  425. package/contracts/pool/PoolLib.sol +216 -0
  426. package/contracts/pool/PoolService.sol +757 -0
  427. package/contracts/pool/PoolServiceManager.sol +39 -0
  428. package/contracts/product/ApplicationService.sol +259 -0
  429. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  430. package/contracts/product/BasicProduct.sol +51 -0
  431. package/contracts/product/BasicProductAuthorization.sol +56 -0
  432. package/contracts/product/ClaimService.sol +632 -0
  433. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  434. package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
  435. package/contracts/product/IClaimService.sol +135 -0
  436. package/contracts/product/IPolicyService.sol +95 -0
  437. package/contracts/product/IPricingService.sol +39 -0
  438. package/contracts/product/IProductComponent.sol +62 -0
  439. package/contracts/product/IRiskService.sol +33 -0
  440. package/contracts/product/PolicyService.sol +682 -0
  441. package/contracts/product/PolicyServiceLib.sol +65 -0
  442. package/contracts/product/PolicyServiceManager.sol +39 -0
  443. package/contracts/product/PricingService.sol +304 -0
  444. package/contracts/product/PricingServiceManager.sol +39 -0
  445. package/contracts/product/Product.sol +478 -0
  446. package/contracts/product/RiskService.sol +145 -0
  447. package/contracts/product/RiskServiceManager.sol +39 -0
  448. package/contracts/registry/ChainNft.sol +79 -40
  449. package/contracts/registry/IRegistry.sol +95 -30
  450. package/contracts/registry/IRegistryService.sol +36 -41
  451. package/contracts/registry/IRelease.sol +26 -0
  452. package/contracts/registry/ITransferInterceptor.sol +1 -2
  453. package/contracts/registry/Registry.sol +460 -197
  454. package/contracts/registry/RegistryAdmin.sol +354 -0
  455. package/contracts/registry/RegistryService.sol +89 -131
  456. package/contracts/registry/RegistryServiceManager.sol +23 -32
  457. package/contracts/registry/ReleaseAdmin.sol +245 -0
  458. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  459. package/contracts/registry/ReleaseRegistry.sol +511 -0
  460. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  461. package/contracts/registry/TokenRegistry.sol +261 -64
  462. package/contracts/shared/Component.sol +227 -0
  463. package/contracts/shared/ComponentService.sol +692 -0
  464. package/contracts/shared/ComponentServiceManager.sol +38 -0
  465. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  466. package/contracts/shared/ContractLib.sol +253 -0
  467. package/contracts/shared/IComponent.sol +61 -0
  468. package/contracts/shared/IComponentService.sol +112 -0
  469. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  470. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  471. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  472. package/contracts/shared/INftOwnable.sol +4 -2
  473. package/contracts/shared/IPolicyHolder.sol +23 -14
  474. package/contracts/shared/IRegisterable.sol +23 -1
  475. package/contracts/shared/IRegistryLinked.sol +0 -1
  476. package/contracts/shared/IService.sol +12 -7
  477. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  478. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  479. package/contracts/shared/KeyValueStore.sol +131 -0
  480. package/contracts/shared/Lifecycle.sol +88 -0
  481. package/contracts/shared/NftIdSet.sol +65 -0
  482. package/contracts/shared/NftOwnable.sol +34 -27
  483. package/contracts/shared/PolicyHolder.sol +22 -41
  484. package/contracts/shared/Registerable.sol +55 -20
  485. package/contracts/shared/RegistryLinked.sol +9 -19
  486. package/contracts/shared/Service.sol +36 -29
  487. package/contracts/shared/TokenHandler.sol +321 -13
  488. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  489. package/contracts/staking/IStaking.sol +165 -0
  490. package/contracts/staking/IStakingService.sol +165 -0
  491. package/contracts/staking/StakeManagerLib.sol +224 -0
  492. package/contracts/staking/Staking.sol +526 -0
  493. package/contracts/staking/StakingLifecycle.sol +23 -0
  494. package/contracts/staking/StakingManager.sol +52 -0
  495. package/contracts/staking/StakingReader.sol +190 -0
  496. package/contracts/staking/StakingService.sol +430 -0
  497. package/contracts/staking/StakingServiceManager.sol +45 -0
  498. package/contracts/staking/StakingStore.sol +605 -0
  499. package/contracts/staking/TargetManagerLib.sol +211 -0
  500. package/contracts/{types → type}/AddressSet.sol +1 -1
  501. package/contracts/type/Amount.sol +150 -0
  502. package/contracts/{types → type}/Blocknumber.sol +26 -3
  503. package/contracts/{types → type}/ClaimId.sol +31 -3
  504. package/contracts/{types → type}/Fee.sol +33 -24
  505. package/contracts/{types → type}/Key32.sol +2 -2
  506. package/contracts/type/Key32Set.sol +62 -0
  507. package/contracts/{types → type}/NftId.sol +21 -16
  508. package/contracts/{types → type}/NftIdSet.sol +2 -2
  509. package/contracts/type/ObjectType.sol +303 -0
  510. package/contracts/type/PayoutId.sol +82 -0
  511. package/contracts/{types → type}/Referral.sol +2 -1
  512. package/contracts/type/RequestId.sol +75 -0
  513. package/contracts/type/RiskId.sol +74 -0
  514. package/contracts/type/RoleId.sol +182 -0
  515. package/contracts/type/Seconds.sol +101 -0
  516. package/contracts/type/Selector.sol +107 -0
  517. package/contracts/{types → type}/StateId.sol +47 -4
  518. package/contracts/type/String.sol +53 -0
  519. package/contracts/{types → type}/Timestamp.sol +20 -6
  520. package/contracts/{types → type}/UFixed.sol +40 -121
  521. package/contracts/{types → type}/Version.sol +19 -7
  522. package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
  523. package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
  524. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  525. package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
  526. package/package.json +11 -7
  527. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  528. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  529. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  530. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  534. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  535. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  536. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  537. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  538. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  539. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  540. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1311
  542. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  543. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  544. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  546. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  549. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  550. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  551. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
  553. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  556. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  558. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  560. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  562. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  564. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  566. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  568. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
  570. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  572. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  574. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  576. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  578. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  580. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  583. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  585. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
  587. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  589. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  591. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  593. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  594. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  595. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  596. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  597. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  598. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  599. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  600. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  601. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  603. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  604. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  605. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  606. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  609. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  610. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  611. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  613. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  615. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  617. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  619. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  621. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  622. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  623. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  624. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  625. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  627. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  629. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  631. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  633. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  635. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  636. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  637. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  639. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  640. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  641. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  643. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  645. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  647. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  649. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  651. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  653. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  655. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  657. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
  659. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  661. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  663. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  665. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  667. package/contracts/components/Component.sol +0 -251
  668. package/contracts/components/IComponent.sol +0 -74
  669. package/contracts/components/IDistributionComponent.sol +0 -71
  670. package/contracts/components/IPoolComponent.sol +0 -113
  671. package/contracts/components/IProductComponent.sol +0 -40
  672. package/contracts/components/Pool.sol +0 -299
  673. package/contracts/components/Product.sol +0 -293
  674. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  675. package/contracts/instance/BundleManager.sol +0 -127
  676. package/contracts/instance/Cloneable.sol +0 -51
  677. package/contracts/instance/InstanceAccessManager.sol +0 -522
  678. package/contracts/instance/ObjectManager.sol +0 -82
  679. package/contracts/instance/base/ComponentService.sol +0 -134
  680. package/contracts/instance/base/KeyValueStore.sol +0 -175
  681. package/contracts/instance/base/Lifecycle.sol +0 -109
  682. package/contracts/instance/module/IAccess.sol +0 -54
  683. package/contracts/instance/module/ISetup.sol +0 -33
  684. package/contracts/instance/module/ITreasury.sol +0 -23
  685. package/contracts/instance/service/ApplicationService.sol +0 -350
  686. package/contracts/instance/service/BundleService.sol +0 -336
  687. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  688. package/contracts/instance/service/ClaimService.sol +0 -151
  689. package/contracts/instance/service/DistributionService.sol +0 -467
  690. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  691. package/contracts/instance/service/IBundleService.sol +0 -62
  692. package/contracts/instance/service/IClaimService.sol +0 -61
  693. package/contracts/instance/service/IDistributionService.sol +0 -98
  694. package/contracts/instance/service/IPolicyService.sol +0 -72
  695. package/contracts/instance/service/IPoolService.sol +0 -35
  696. package/contracts/instance/service/IProductService.sol +0 -40
  697. package/contracts/instance/service/PolicyService.sol +0 -403
  698. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  699. package/contracts/instance/service/PoolService.sol +0 -220
  700. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  701. package/contracts/instance/service/ProductService.sol +0 -241
  702. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  703. package/contracts/registry/RegistryAccessManager.sol +0 -216
  704. package/contracts/registry/ReleaseManager.sol +0 -322
  705. package/contracts/shared/ContractDeployerLib.sol +0 -72
  706. package/contracts/test/TestFee.sol +0 -25
  707. package/contracts/test/TestRegisterable.sol +0 -18
  708. package/contracts/test/TestRoleId.sol +0 -14
  709. package/contracts/test/TestService.sol +0 -25
  710. package/contracts/test/TestToken.sol +0 -26
  711. package/contracts/test/TestVersion.sol +0 -44
  712. package/contracts/test/TestVersionable.sol +0 -17
  713. package/contracts/types/ChainId.sol +0 -38
  714. package/contracts/types/NumberId.sol +0 -52
  715. package/contracts/types/ObjectType.sol +0 -157
  716. package/contracts/types/PayoutId.sol +0 -54
  717. package/contracts/types/RiskId.sol +0 -43
  718. package/contracts/types/RoleId.sol +0 -97
  719. package/contracts/types/Seconds.sol +0 -54
  720. /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,10 @@ This repository uses submodules. To checkout or update to the latest submodules,
40
28
  git submodule update --recursive
41
29
  ```
42
30
 
31
+ ## Example components
32
+
33
+ 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).
34
+
43
35
  ## Hardhat
44
36
 
45
37
  ### NPM Commands
@@ -72,28 +64,57 @@ Install the dependencies before running the script below for the first time.
72
64
  npm install
73
65
  ```
74
66
 
75
- The deploy script will deploy all required contracts and create a test instance with a test product and a test pool.
67
+ The deploy script will deploy all required contracts for gif and create a test instance.
76
68
 
77
69
  ```bash
78
70
  # run deployment on a locally created ganache instance
79
- export SKIP_VERIFICATION=true
80
- hh run scripts/deploy_all.ts
71
+ hh run scripts/deploy_gif.ts
81
72
  ```
82
73
 
83
74
  ```bash
84
75
  # set appropriate values vor env variables (see below)
85
76
 
86
77
  # run deployment on another network
87
- hh run --network <networkname> scripts/deploy_all.ts
78
+ hh run --network <networkname> scripts/deploy_gif.ts
79
+ ```
80
+
81
+ The deployment will persist deployment information into the files `deployments/<chainid>/deployment_state.json`, `deployments/<chainid>/libraries.json` and `deployments/<chainid>/verification_log.json`.
82
+ This data can then be used for verification of the deployed contracts on etherscan/polygonscan.
83
+
84
+ 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:
85
+
86
+ ```bash
87
+ hh run --network <networkname> scripts/verify_deployment.ts
88
88
  ```
89
89
 
90
90
  Environment variables:
91
91
 
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)
92
+ - `WRITE_ADDRESSES_TO_FILE` set to `true` to write the addresses of the deployed contracts to a file (default: `false`)
93
+ - `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`)
94
+ - `GAS_PRICE` set to the gas price to use for deployment (default: `undefined`)
94
95
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
96
+
97
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
95
98
  - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
96
99
 
100
+ ### Deploy full protocol with fire example components
101
+
102
+ ```bash
103
+ hh run scripts/deploy_all.ts
104
+ ```
105
+
106
+ Like before, use the `--network` option to deploy on a different network.
107
+
108
+ ### Deploy only the fire example components
109
+
110
+ ```bash
111
+ hh run scripts/deploy_fire_components.ts
112
+ ```
113
+
114
+ 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.
115
+
116
+ Like before, use the `--network` option to deploy on a different network.
117
+
97
118
  ### Create a new instance
98
119
 
99
120
  Requires previous step to be completed.
@@ -113,7 +134,6 @@ Environment variables:
113
134
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
114
135
  - `REGISTRY_ADDRESS` the address of the registry that is already deployed and configured and has a valid master instance
115
136
 
116
-
117
137
  ### Console
118
138
 
119
139
  ```
@@ -129,6 +149,27 @@ await provider.getBalance(me)
129
149
 
130
150
  https://hardhat.org/hardhat-runner/docs/guides/compile-contracts
131
151
 
152
+ ### Scripts to find syntax bugs in code
153
+
154
+ #### find methods missing the `restricted` modifier
155
+
156
+ ```bash
157
+ hh run scripts/find_unrestricted_methods.ts.ts
158
+ ```
159
+
160
+ Checks all public/external methods in services and components for methods that are missing the `restricted` modifier but should have one.
161
+
162
+ 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).
163
+ 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`).
164
+
165
+ #### find methods missing the `virtual` keyword
166
+
167
+ ```bash
168
+ hh run scripts/find_missing_virtual_methods.ts.ts
169
+ ```
170
+
171
+ Checks all public/external methods in services and components for methods that are not marked as `virtual` but should be.
172
+
132
173
  ## Forge
133
174
 
134
175
  ### Commands
@@ -154,11 +195,28 @@ forge test --mt test_decimals --gas-report
154
195
  # provide code coverage report
155
196
  forge coverage
156
197
  forge coverage --report lcov
198
+ ```
157
199
 
200
+ ### Aliases
158
201
 
159
- ```
160
202
 
161
- Chisel session
203
+ | Alias | Command |
204
+ | --- | --- |
205
+ | fb | forge build |
206
+ | fbw | forge build --watch |
207
+ | fbc | forge build contracts/ |
208
+ | fbcw | forge build --watch contracts/ |
209
+ | ft | forge test |
210
+ | ftf | forge test --nmt "_longRunning" |
211
+ | ftt | forge test -vvvv --mt |
212
+ | fttw | forge test -vvvv --watch --mt |
213
+ | ftc | forge test -vvvv --mc |
214
+ | ftcw | forge test -vvvv --watch --mc |
215
+
216
+ **Important**: All profiles are run using the foundry `ci` profile which disables the optimizer (for speed).
217
+
218
+ ### Chisel session
219
+
162
220
  ```typescript
163
221
  import "./contracts/components/Component.sol";
164
222
  import "./contracts/components/IPool.sol";
@@ -232,17 +290,7 @@ https://book.getfoundry.sh/reference/
232
290
 
233
291
  ## Style Guide
234
292
 
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/).
293
+ Please see https://docs.etherisc.com/gif-next/3.x/ for style guide and general coding rules.
246
294
 
247
295
  ### Automatic code formatting
248
296
 
@@ -257,7 +305,7 @@ We use solhint to lint the code.
257
305
  To execute linting run `npm run lint`.
258
306
 
259
307
 
260
- ### Adding Brownie (Legacy)
308
+ ### Adding Brownie (Legacy - don't do that :wink: )
261
309
 
262
310
  python3 is already installed
263
311
 
@@ -405,65 +453,6 @@ Intercepting property
405
453
 
406
454
  ### Product
407
455
 
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
456
  ### Pool
468
457
 
469
458
  ### Distribution
@@ -537,13 +526,14 @@ contracts
537
526
  ComponentService.sol
538
527
  instance
539
528
  Instance.sol
540
- InstanceAccessManager.sol
529
+ InstanceAdmin.sol
541
530
  InstanceReader.sol
542
531
  InstanceService.sol
543
532
  InstanceServiceManager.sol
544
533
  registry
545
534
  ChainNft.sol
546
535
  Registry.sol
536
+ RegistryAdmin.sol
547
537
  RegistryService.sol
548
538
  RegistryServiceManager.sol
549
539
  shared
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/31251fda6de97ecf38c82d26f8658b70.json"
4
+ }