@etherisc/gif-next 0.0.2-e875d61-189 → 0.0.2-e876b87-961

Sign up to get free protection for your applications and to get access to all the features.
Files changed (746) hide show
  1. package/README.md +297 -41
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  16. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
  18. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  20. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
  22. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  24. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
  26. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1455 -0
  28. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
  30. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
  32. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
  34. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  35. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  36. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  37. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
  38. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  39. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
  40. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -0
  42. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  44. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  46. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  47. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
  48. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  49. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
  50. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  51. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
  54. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  55. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  56. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +276 -1471
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +702 -0
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +377 -1755
  62. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
  64. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2058 -0
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +995 -0
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +722 -0
  72. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -0
  74. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  76. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  78. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  80. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  82. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  86. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  87. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  88. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  89. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  90. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  92. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  93. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  94. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  95. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  96. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  97. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  98. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1039 -0
  100. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  101. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  102. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  103. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  104. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  105. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
  106. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
  108. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
  110. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
  112. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
  114. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  115. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
  116. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
  118. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  119. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
  120. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
  122. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  123. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +960 -0
  124. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  125. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
  126. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
  128. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
  130. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  131. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
  132. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
  134. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  135. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
  136. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
  138. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  139. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
  140. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  141. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  142. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  143. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
  144. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
  146. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +546 -0
  148. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  149. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
  150. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  151. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
  152. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  153. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
  154. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  155. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1012 -0
  156. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → product/IRiskService.sol/IRiskService.json} +226 -141
  158. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  159. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
  160. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  162. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  163. package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
  164. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  165. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
  166. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  167. package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
  168. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  169. package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
  170. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
  172. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  173. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +242 -12
  174. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  175. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +976 -119
  176. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  177. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1019 -0
  178. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  179. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  180. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/Registry.sol/Registry.json +1403 -220
  182. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  183. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
  184. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  185. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1246 -0
  186. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +713 -0
  188. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  189. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  190. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  191. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
  192. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  193. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  194. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  195. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  196. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Component.sol/Component.json +725 -0
  198. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  199. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1785 -0
  200. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +4 -0
  201. package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +206 -0
  202. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  203. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +810 -0
  204. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  205. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +232 -235
  206. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  207. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
  208. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  209. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  210. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  211. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1360 -0
  212. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  213. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
  214. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  215. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  216. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  218. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  219. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +47 -74
  220. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  221. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  222. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +113 -24
  224. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  225. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  226. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +182 -171
  228. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  229. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  230. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  231. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
  232. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  233. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  234. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  235. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  236. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  237. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  238. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  239. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  240. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  241. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  242. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +224 -23
  244. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  245. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  246. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  247. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → shared/Service.sol/Service.json} +239 -173
  248. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  249. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +546 -0
  250. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  251. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +132 -0
  252. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
  254. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  255. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
  256. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  258. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  259. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  260. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  262. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
  264. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  266. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
  268. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
  270. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  271. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  272. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  273. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  274. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  275. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  276. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  278. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  280. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  282. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  284. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  286. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  288. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  290. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  291. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  292. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  294. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  296. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  298. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  300. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +142 -0
  302. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  304. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  308. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  310. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  312. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  314. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  316. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  318. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  320. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  322. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  324. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  325. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  326. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  327. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -0
  328. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  329. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  330. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  331. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  332. package/contracts/authorization/AccessAdmin.sol +596 -0
  333. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  334. package/contracts/authorization/Authorization.sol +289 -0
  335. package/contracts/authorization/IAccess.sol +49 -0
  336. package/contracts/authorization/IAccessAdmin.sol +137 -0
  337. package/contracts/authorization/IAuthorization.sol +60 -0
  338. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  339. package/contracts/authorization/ReleaseAccessManager.sol +38 -0
  340. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  341. package/contracts/distribution/BasicDistribution.sol +139 -0
  342. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  343. package/contracts/distribution/Distribution.sol +285 -0
  344. package/contracts/distribution/DistributionService.sol +355 -0
  345. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  346. package/contracts/distribution/IDistributionComponent.sol +52 -0
  347. package/contracts/distribution/IDistributionService.sol +101 -0
  348. package/contracts/examples/fire/DamageLevel.sol +59 -0
  349. package/contracts/examples/fire/FirePool.sol +73 -0
  350. package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
  351. package/contracts/examples/fire/FireProduct.sol +415 -0
  352. package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
  353. package/contracts/examples/fire/FireUSD.sol +26 -0
  354. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  355. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  356. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  357. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  358. package/contracts/instance/BundleSet.sol +126 -0
  359. package/contracts/instance/IInstance.sol +59 -43
  360. package/contracts/instance/IInstanceService.sol +72 -0
  361. package/contracts/instance/Instance.sol +219 -58
  362. package/contracts/instance/InstanceAdmin.sol +279 -0
  363. package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
  364. package/contracts/instance/InstanceReader.sol +495 -0
  365. package/contracts/instance/InstanceService.sol +413 -0
  366. package/contracts/instance/InstanceServiceManager.sol +39 -0
  367. package/contracts/instance/InstanceStore.sol +287 -0
  368. package/contracts/instance/base/BalanceStore.sol +123 -0
  369. package/contracts/instance/base/Cloneable.sol +28 -0
  370. package/contracts/instance/base/ObjectCounter.sol +21 -0
  371. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  372. package/contracts/instance/base/ObjectSet.sol +79 -0
  373. package/contracts/instance/module/IAccess.sol +46 -0
  374. package/contracts/instance/module/IBundle.sol +20 -0
  375. package/contracts/instance/module/IComponents.sol +51 -0
  376. package/contracts/instance/module/IDistribution.sol +41 -0
  377. package/contracts/instance/module/IPolicy.sol +84 -0
  378. package/contracts/instance/module/IRisk.sol +11 -0
  379. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  380. package/contracts/oracle/BasicOracle.sol +47 -0
  381. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  382. package/contracts/oracle/IOracle.sol +36 -0
  383. package/contracts/oracle/IOracleComponent.sol +33 -0
  384. package/contracts/oracle/IOracleService.sol +66 -0
  385. package/contracts/oracle/Oracle.sol +156 -0
  386. package/contracts/oracle/OracleService.sol +291 -0
  387. package/contracts/oracle/OracleServiceManager.sol +39 -0
  388. package/contracts/pool/BasicPool.sol +154 -0
  389. package/contracts/pool/BasicPoolAuthorization.sol +57 -0
  390. package/contracts/pool/BundleService.sol +493 -0
  391. package/contracts/pool/BundleServiceManager.sol +39 -0
  392. package/contracts/pool/IBundleService.sol +143 -0
  393. package/contracts/pool/IPoolComponent.sol +68 -0
  394. package/contracts/pool/IPoolService.sol +167 -0
  395. package/contracts/pool/Pool.sol +335 -0
  396. package/contracts/pool/PoolService.sol +544 -0
  397. package/contracts/pool/PoolServiceManager.sol +39 -0
  398. package/contracts/product/ApplicationService.sol +259 -0
  399. package/contracts/product/ApplicationServiceManager.sol +38 -0
  400. package/contracts/product/BasicProduct.sol +53 -0
  401. package/contracts/product/BasicProductAuthorization.sol +42 -0
  402. package/contracts/product/ClaimService.sol +612 -0
  403. package/contracts/product/ClaimServiceManager.sol +38 -0
  404. package/contracts/product/IApplicationService.sol +63 -0
  405. package/contracts/product/IClaimService.sol +123 -0
  406. package/contracts/product/IPolicyService.sol +80 -0
  407. package/contracts/product/IPricingService.sol +39 -0
  408. package/contracts/product/IProductComponent.sol +59 -0
  409. package/contracts/product/IRiskService.sol +33 -0
  410. package/contracts/product/PolicyService.sol +691 -0
  411. package/contracts/product/PolicyServiceManager.sol +39 -0
  412. package/contracts/product/PricingService.sol +300 -0
  413. package/contracts/product/PricingServiceManager.sol +39 -0
  414. package/contracts/product/Product.sol +455 -0
  415. package/contracts/product/RiskService.sol +96 -0
  416. package/contracts/product/RiskServiceManager.sol +39 -0
  417. package/contracts/registry/ChainNft.sol +128 -40
  418. package/contracts/registry/IRegistry.sol +142 -28
  419. package/contracts/registry/IRegistryService.sol +62 -0
  420. package/contracts/registry/ITransferInterceptor.sol +6 -0
  421. package/contracts/registry/Registry.sol +618 -282
  422. package/contracts/registry/RegistryAdmin.sol +448 -0
  423. package/contracts/registry/RegistryService.sol +241 -0
  424. package/contracts/registry/RegistryServiceManager.sol +53 -0
  425. package/contracts/registry/ReleaseLifecycle.sol +30 -0
  426. package/contracts/registry/ReleaseRegistry.sol +501 -0
  427. package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
  428. package/contracts/registry/TokenRegistry.sol +315 -0
  429. package/contracts/shared/Component.sol +271 -0
  430. package/contracts/shared/ComponentService.sol +701 -0
  431. package/contracts/shared/ComponentServiceHelperLib.sol +118 -0
  432. package/contracts/shared/ComponentServiceManager.sol +38 -0
  433. package/contracts/shared/ComponentVerifyingService.sol +126 -0
  434. package/contracts/shared/ContractLib.sol +38 -0
  435. package/contracts/shared/IComponent.sol +74 -0
  436. package/contracts/shared/IComponentService.sol +121 -0
  437. package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
  438. package/contracts/shared/IKeyValueStore.sol +54 -0
  439. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  440. package/contracts/shared/INftOwnable.sol +25 -0
  441. package/contracts/shared/IPolicyHolder.sol +35 -0
  442. package/contracts/shared/IRegisterable.sol +23 -21
  443. package/contracts/shared/IRegistryLinked.sol +11 -0
  444. package/contracts/shared/IService.sol +25 -0
  445. package/contracts/shared/InitializableERC165.sol +27 -0
  446. package/contracts/shared/InstanceLinkedComponent.sol +213 -0
  447. package/contracts/shared/KeyValueStore.sol +131 -0
  448. package/contracts/shared/Lifecycle.sol +88 -0
  449. package/contracts/shared/NftIdSet.sol +65 -0
  450. package/contracts/shared/NftOwnable.sol +127 -0
  451. package/contracts/shared/PolicyHolder.sol +62 -0
  452. package/contracts/shared/Registerable.sol +62 -63
  453. package/contracts/shared/RegistryLinked.sol +44 -0
  454. package/contracts/shared/Service.sol +84 -0
  455. package/contracts/shared/TokenHandler.sol +183 -0
  456. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  457. package/contracts/staking/IStaking.sol +168 -0
  458. package/contracts/staking/IStakingService.sol +157 -0
  459. package/contracts/staking/StakeManagerLib.sol +224 -0
  460. package/contracts/staking/Staking.sol +497 -0
  461. package/contracts/staking/StakingLifecycle.sol +23 -0
  462. package/contracts/staking/StakingManager.sol +52 -0
  463. package/contracts/staking/StakingReader.sol +190 -0
  464. package/contracts/staking/StakingService.sol +407 -0
  465. package/contracts/staking/StakingServiceManager.sol +44 -0
  466. package/contracts/staking/StakingStore.sol +605 -0
  467. package/contracts/staking/TargetManagerLib.sol +211 -0
  468. package/contracts/{types → type}/AddressSet.sol +1 -1
  469. package/contracts/type/Amount.sol +150 -0
  470. package/contracts/{types → type}/Blocknumber.sol +27 -3
  471. package/contracts/type/ClaimId.sol +80 -0
  472. package/contracts/type/DistributorType.sol +55 -0
  473. package/contracts/type/Fee.sol +66 -0
  474. package/contracts/{types → type}/Key32.sol +8 -3
  475. package/contracts/{types → type}/NftId.sol +22 -15
  476. package/contracts/type/NftIdSet.sol +62 -0
  477. package/contracts/type/ObjectType.sol +276 -0
  478. package/contracts/type/PayoutId.sol +82 -0
  479. package/contracts/type/Referral.sol +90 -0
  480. package/contracts/type/RequestId.sol +75 -0
  481. package/contracts/type/RiskId.sol +57 -0
  482. package/contracts/type/RoleId.sol +162 -0
  483. package/contracts/type/Seconds.sol +101 -0
  484. package/contracts/type/Selector.sol +102 -0
  485. package/contracts/{types → type}/StateId.sol +53 -5
  486. package/contracts/type/String.sol +53 -0
  487. package/contracts/{types → type}/Timestamp.sol +38 -15
  488. package/contracts/type/UFixed.sol +355 -0
  489. package/contracts/{types → type}/Version.sol +17 -2
  490. package/contracts/upgradeability/IVersionable.sol +53 -0
  491. package/contracts/upgradeability/ProxyManager.sol +232 -0
  492. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  493. package/contracts/upgradeability/Versionable.sol +59 -0
  494. package/package.json +12 -7
  495. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  496. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  497. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  498. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  499. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  500. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  501. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  502. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  503. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -455
  504. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  505. package/artifacts/contracts/components/Product.sol/Product.json +0 -348
  506. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  508. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  510. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  512. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  514. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  516. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  518. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  520. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  522. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  524. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  525. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  526. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  527. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  528. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  529. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  530. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  531. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  532. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  533. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  534. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  535. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  536. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  537. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  538. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  539. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  540. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  541. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  542. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  544. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -81
  546. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  547. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  550. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  552. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  553. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  554. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  555. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  556. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  557. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  558. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  559. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  560. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  561. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  562. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  563. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -265
  565. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  567. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -265
  568. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  570. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  572. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  573. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  574. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  575. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -136
  576. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  577. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  578. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  579. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -136
  580. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  581. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  582. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -273
  583. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  584. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -273
  585. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  587. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  589. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  590. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  591. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  592. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  593. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  594. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  595. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  596. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  597. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  598. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  599. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -531
  600. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  601. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  602. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -531
  604. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  605. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  606. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  608. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  610. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  611. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  613. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  614. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  615. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  616. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  617. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  618. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  619. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  620. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  621. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -164
  622. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  623. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -164
  624. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  625. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  626. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  627. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -455
  628. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  629. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -436
  630. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  631. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  632. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  633. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  634. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  635. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  636. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  637. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  638. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  639. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  640. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  641. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  642. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  643. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  644. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  645. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  646. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  648. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  649. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  650. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  651. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  652. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  653. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  654. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  655. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  656. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  657. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  658. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  660. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  662. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  664. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  665. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  666. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  668. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  669. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  670. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  672. package/contracts/components/BaseComponent.sol +0 -94
  673. package/contracts/components/IBaseComponent.sol +0 -19
  674. package/contracts/components/IPoolComponent.sol +0 -57
  675. package/contracts/components/IProductComponent.sol +0 -19
  676. package/contracts/components/Pool.sol +0 -191
  677. package/contracts/components/Product.sol +0 -134
  678. package/contracts/experiment/errors/Require.sol +0 -38
  679. package/contracts/experiment/errors/Revert.sol +0 -44
  680. package/contracts/experiment/inheritance/A.sol +0 -53
  681. package/contracts/experiment/inheritance/B.sol +0 -28
  682. package/contracts/experiment/inheritance/C.sol +0 -34
  683. package/contracts/experiment/inheritance/IA.sol +0 -13
  684. package/contracts/experiment/inheritance/IB.sol +0 -10
  685. package/contracts/experiment/inheritance/IC.sol +0 -12
  686. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  687. package/contracts/experiment/statemachine/ISM.sol +0 -25
  688. package/contracts/experiment/statemachine/README.md +0 -112
  689. package/contracts/experiment/statemachine/SM.sol +0 -57
  690. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  691. package/contracts/experiment/types/TypeA.sol +0 -47
  692. package/contracts/experiment/types/TypeB.sol +0 -29
  693. package/contracts/instance/IInstanceLinked.sol +0 -8
  694. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  695. package/contracts/instance/base/IInstanceBase.sol +0 -19
  696. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  697. package/contracts/instance/base/IService.sol +0 -15
  698. package/contracts/instance/base/InstanceBase.sol +0 -84
  699. package/contracts/instance/base/KeyValueStore.sol +0 -161
  700. package/contracts/instance/base/Lifecycle.sol +0 -92
  701. package/contracts/instance/base/ModuleBase.sol +0 -46
  702. package/contracts/instance/base/ServiceBase.sol +0 -37
  703. package/contracts/instance/module/access/Access.sol +0 -149
  704. package/contracts/instance/module/access/IAccess.sol +0 -53
  705. package/contracts/instance/module/bundle/BundleModule.sol +0 -135
  706. package/contracts/instance/module/bundle/IBundle.sol +0 -51
  707. package/contracts/instance/module/compensation/CompensationModule.sol +0 -17
  708. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  709. package/contracts/instance/module/component/ComponentModule.sol +0 -81
  710. package/contracts/instance/module/component/IComponent.sol +0 -29
  711. package/contracts/instance/module/policy/IPolicy.sol +0 -59
  712. package/contracts/instance/module/policy/PolicyModule.sol +0 -89
  713. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  714. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  715. package/contracts/instance/module/risk/IRisk.sol +0 -10
  716. package/contracts/instance/module/risk/RiskModule.sol +0 -17
  717. package/contracts/instance/module/treasury/ITreasury.sol +0 -96
  718. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  719. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -171
  720. package/contracts/instance/service/ComponentOwnerService.sol +0 -155
  721. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  722. package/contracts/instance/service/IPoolService.sol +0 -30
  723. package/contracts/instance/service/IProductService.sol +0 -58
  724. package/contracts/instance/service/PoolService.sol +0 -129
  725. package/contracts/instance/service/ProductService.sol +0 -366
  726. package/contracts/registry/IChainNft.sol +0 -21
  727. package/contracts/registry/IRegistryLinked.sol +0 -8
  728. package/contracts/shared/ERC165.sol +0 -21
  729. package/contracts/shared/IOwnable.sol +0 -6
  730. package/contracts/shared/IVersionable.sol +0 -52
  731. package/contracts/shared/Versionable.sol +0 -89
  732. package/contracts/test/TestFee.sol +0 -25
  733. package/contracts/test/TestPool.sol +0 -24
  734. package/contracts/test/TestProduct.sol +0 -51
  735. package/contracts/test/TestRegisterable.sol +0 -19
  736. package/contracts/test/TestRoleId.sol +0 -14
  737. package/contracts/test/TestService.sol +0 -32
  738. package/contracts/test/TestToken.sol +0 -26
  739. package/contracts/test/TestVersion.sol +0 -44
  740. package/contracts/test/TestVersionable.sol +0 -17
  741. package/contracts/types/ChainId.sol +0 -38
  742. package/contracts/types/Fee.sol +0 -51
  743. package/contracts/types/NftIdSet.sol +0 -60
  744. package/contracts/types/ObjectType.sol +0 -123
  745. package/contracts/types/RoleId.sol +0 -38
  746. package/contracts/types/UFixed.sol +0 -209
package/README.md CHANGED
@@ -1,4 +1,24 @@
1
- # gif-next (Generic Insurance Framework next version)
1
+ # GIF-Next (Generic Insurance Framework, next version)
2
+
3
+
4
+ ## Add OpenZeppelin V5 Dependencies
5
+
6
+ ```shell
7
+ forge install openzeppelin-contracts-500=OpenZeppelin/openzeppelin-contracts@v5.0.0
8
+ cd cd lib/openzeppelin-contracts-500
9
+ git checkout tags/v5.0.0
10
+ cd ../..
11
+ ```
12
+
13
+ See `remappings.txt` to see how to work with different OpenZeppelin versions in parallel
14
+
15
+ ```
16
+ cat remappings.txt
17
+ @openzeppelin5/contracts/=lib/openzeppelin-contracts-500/contracts/
18
+ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
19
+ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
20
+ ```
21
+
2
22
 
3
23
  ## Submodules checkout
4
24
 
@@ -8,6 +28,10 @@ This repository uses submodules. To checkout or update to the latest submodules,
8
28
  git submodule update --recursive
9
29
  ```
10
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
+
11
35
  ## Hardhat
12
36
 
13
37
  ### NPM Commands
@@ -21,25 +45,73 @@ npm run test-with-gas
21
45
  npm run coverage
22
46
  ```
23
47
 
24
- ### Deployment
48
+ ### Docgen
49
+
50
+ Produce `solidty-docgen` documentation using the command below.
51
+
52
+ ```shell
53
+ hh docgen
54
+ ```
55
+
56
+ The resulting markdown files are written to `docs`
57
+
58
+
59
+ ### Full protocol deployment
60
+
61
+ Install the dependencies before running the script below for the first time.
62
+
63
+ ```bash
64
+ npm install
65
+ ```
25
66
 
26
67
  The deploy script will deploy all required contracts and create a test instance with a test product and a test pool.
27
68
 
28
69
  ```bash
29
70
  # run deployment on a locally created ganache instance
30
71
  hh run scripts/deploy_all.ts
72
+ ```
73
+
74
+ ```bash
75
+ # set appropriate values vor env variables (see below)
31
76
 
32
77
  # run deployment on another network
33
78
  hh run --network <networkname> scripts/deploy_all.ts
34
79
  ```
35
80
 
81
+ The deployment will persist deployment information into the files `deployment_state_<chainid>.json`, `libraries_<chainid>.json` and `verification_log_<chainid>.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
+ ```
89
+
36
90
  Environment variables:
37
91
 
38
- - `SKIP_VERIFICATION` set to `true` to skip etherscan verification (required for ganacht and anvil)
39
92
  - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
40
93
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
41
94
  - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
42
95
 
96
+ ### Create a new instance
97
+
98
+ Requires previous step to be completed.
99
+
100
+ ```bash
101
+ # set appropriate values vor env variables (see below)
102
+
103
+ hh run --network <networkname> scripts/new_instance.ts
104
+ ```
105
+
106
+ Currently an HD wallet is expected to be used for the deployment. The mnemonic of the wallet needs to be provided via the `WALLET_MNEMONIC` environment variable.
107
+ The instance owner will be the 11th address of the wallet.
108
+
109
+ Environment variables:
110
+
111
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
112
+ - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
113
+ - `REGISTRY_ADDRESS` the address of the registry that is already deployed and configured and has a valid master instance
114
+
43
115
 
44
116
  ### Console
45
117
 
@@ -56,6 +128,27 @@ await provider.getBalance(me)
56
128
 
57
129
  https://hardhat.org/hardhat-runner/docs/guides/compile-contracts
58
130
 
131
+ ### Scripts to find syntax bugs in code
132
+
133
+ #### find methods missing the `restricted` modifier
134
+
135
+ ```bash
136
+ hh run scripts/find_unrestricted_methods.ts.ts
137
+ ```
138
+
139
+ Checks all public/external methods in services and components for methods that are missing the `restricted` modifier but should have one.
140
+
141
+ 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).
142
+ 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`).
143
+
144
+ #### find methods missing the `virtual` keyword
145
+
146
+ ```bash
147
+ hh run scripts/find_missing_virtual_methods.ts.ts
148
+ ```
149
+
150
+ Checks all public/external methods in services and components for methods that are not marked as `virtual` but should be.
151
+
59
152
  ## Forge
60
153
 
61
154
  ### Commands
@@ -78,10 +171,31 @@ forge test -vvvv --mt test_decimals
78
171
  # provide gas report for a single test
79
172
  forge test --mt test_decimals --gas-report
80
173
 
174
+ # provide code coverage report
81
175
  forge coverage
176
+ forge coverage --report lcov
82
177
  ```
83
178
 
84
- Chisel session
179
+ ### Aliases
180
+
181
+
182
+ | Alias | Command |
183
+ | --- | --- |
184
+ | fb | forge build |
185
+ | fbw | forge build --watch |
186
+ | fbc | forge build contracts/ |
187
+ | fbcw | forge build --watch contracts/ |
188
+ | ft | forge test |
189
+ | ftf | forge test --nmt "_longRunning" |
190
+ | ftt | forge test -vvvv --mt |
191
+ | fttw | forge test -vvvv --watch --mt |
192
+ | ftc | forge test -vvvv --mc |
193
+ | ftcw | forge test -vvvv --watch --mc |
194
+
195
+ **Important**: All profiles are run using the foundry `ci` profile which disables the optimizer (for speed).
196
+
197
+ ### Chisel session
198
+
85
199
  ```typescript
86
200
  import "./contracts/components/Component.sol";
87
201
  import "./contracts/components/IPool.sol";
@@ -155,17 +269,7 @@ https://book.getfoundry.sh/reference/
155
269
 
156
270
  ## Style Guide
157
271
 
158
- Solidity code is to be written according to the [Solidity Style Guide](https://docs.soliditylang.org/en/latest/style-guide.html).
159
-
160
- Documentation of the code should be written inline using [NatSpec](https://docs.soliditylang.org/en/latest/natspec-format.html).
161
-
162
- ### Naming conventions
163
-
164
- Additionally, we use the following naming conventions:
165
-
166
- - 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.
167
- - 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.
168
- - 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/).
272
+ Please see https://docs.etherisc.com/gif-next/3.x/ for style guide and general coding rules.
169
273
 
170
274
  ### Automatic code formatting
171
275
 
@@ -180,7 +284,7 @@ We use solhint to lint the code.
180
284
  To execute linting run `npm run lint`.
181
285
 
182
286
 
183
- ### Adding Brownie (Legacy)
287
+ ### Adding Brownie (Legacy - don't do that :wink: )
184
288
 
185
289
  python3 is already installed
186
290
 
@@ -190,6 +294,7 @@ sudo apt update
190
294
  sudo apt install python3-pip
191
295
  pip install eth-brownie
192
296
  brownie pm install OpenZeppelin/openzeppelin-contracts@4.9.3
297
+ brownie pm install OpenZeppelin/openzeppelin-contracts@5.0.0
193
298
  ```
194
299
 
195
300
  ```bash
@@ -241,28 +346,179 @@ pool_id = pool.getNftId()
241
346
  product_id = product.getNftId()
242
347
  ```
243
348
 
244
- ## migrate to kv store
245
-
246
- sizes before
247
- | Instance | 23.178 | 1.398 |
248
- | TestInstanceBase | 3.305 | 21.271 |
249
- | TestInstanceModuleAccess | 7.86 | 16.716 |
250
- | TestInstanceModuleBundle | 7.586 | 16.99 |
251
- | TestInstanceModuleCompensation | 3.305 | 21.271 |
252
- | TestInstanceModuleComponent | 5.123 | 19.453 |
253
- | TestInstanceModulePolicy | 6.937 | 17.639 |
254
- | TestInstanceModulePool | 4.809 | 19.767 |
255
- | TestInstanceModuleRisk | 3.305 | 21.271 |
256
- | TestInstanceModuleTreasury | 7.563 | 17.013 |
257
- ---
258
- sizes after
259
- | Instance | 21.776 | 2.8 |
260
- | TestInstanceBase | 3.485 | 21.091 |
261
- | TestInstanceModuleAccess | 8.036 | 16.54 |
262
- | TestInstanceModuleBundle | 8.354 | 16.222 |
263
- | TestInstanceModuleCompensation | 3.485 | 21.091 |
264
- | TestInstanceModuleComponent | 5.482 | 19.094 |
265
- | TestInstanceModulePolicy | 7.335 | 17.241 |
266
- | TestInstanceModulePool | 5.522 | 19.054 |
267
- | TestInstanceModuleRisk | 3.485 | 21.091 |
268
- | TestInstanceModuleTreasury | 8.945 | 15.631 |
349
+ ## Objects
350
+
351
+ ### Registry
352
+
353
+ Mandatory properties
354
+
355
+ * One registry per chain
356
+ * Global registry: the registry on mainnet
357
+ * One entry per protocol object
358
+ * Once registered object properties are immutable
359
+ * Globally unique NFT minted per protocol object (chain id is embedded in NFT id)
360
+ * Object ownership defined by NFT ownernship
361
+ * Typed objects (instance, product, policy, ...)
362
+ * Each object has parent object (only one exception: protocol object does not have parent object)
363
+ * Parent object type is defined by type of child object
364
+
365
+ Object properties (for smart contracts)
366
+ * Objects that represent a smart contract record its contract address
367
+ * With one exception (see next point) smart contract addresses refer to the address on the same chain as the registry
368
+ * The global registry also holds entries for all the registries on different chains than mainnet, in these cases the addresses refer to the chains of these chain specific registries (this is the only case where registered addresses do not refer to the same chain)
369
+
370
+ Optional properties
371
+
372
+ * Objects can have names
373
+ * Object names are unique per chain
374
+ * Objects may define an intercepting property, in which case a predefined smart contract is involved in NFT transfers of the objects NFT (transfer may trigger actions, transfer may be blocked etc)
375
+ *
376
+
377
+ Ownership property
378
+
379
+ * Object ownership defined by ownership of NFT representing the object
380
+ * Protocol
381
+ * Fixed/predefined owner (address without private key)
382
+ * Registry
383
+ * Allows registration of token and services (per major release)
384
+ * May transfer ownership
385
+ * Token
386
+ * Fixed/predefined owner (address without private key)
387
+ * TODO add whitelisting for token per major release
388
+ * Service
389
+ * Allows upgrades of services as long as major version is same
390
+ * Until further notice the same entity as the registry owner
391
+ * May transfer ownership
392
+ * Instance
393
+ * Granting/revoking of roles (both default + custom)
394
+ * Management of custom roles and targets
395
+ * May lock instance and/or components
396
+ * May transfer ownership
397
+ * Component (Product, Pool, Distribution, Oracle)
398
+ * Register component
399
+ * Set component wallet (which receives fees, holds funds)
400
+ * May lock component
401
+ * May transfer ownership
402
+ * Additional use case specific features
403
+ * Policy
404
+ * Represents policy holder
405
+ * Receive payouts (GIF default behaviour)
406
+ * May transfer ownership
407
+ * Bundle
408
+ * Represents funds owner
409
+ * May withdraw funds not locked by active policies
410
+ * May transfer ownership
411
+ * Distributor
412
+ * Receives commissions from sales (GIF default behaviour)
413
+ * May transfer ownership
414
+
415
+ Intercepting property
416
+ * Service owner is indirectly owner of service manager contract
417
+
418
+ * Instance
419
+ * intercepts transfer of instance owner (new owner needs access manager admin rights for custom roles and targets)
420
+ * intercepts transfer of components, to do what? check that new owner has necessary roles?
421
+ * Product
422
+ * intercepts transfer of policies (use case specific: eg. limit/disallow transfers)
423
+ * Pool:
424
+ * intercepts transfer of bundles (use case specific: eg. limit/disallow transfers)
425
+ * Distribution
426
+ * intercepts transfer of distributors (bookkeeping: only one distributor per address allowed)
427
+ * Oracle
428
+ * likely meaningless
429
+
430
+
431
+ ### Instance
432
+
433
+ ### Product
434
+
435
+ ### Pool
436
+
437
+ ### Distribution
438
+
439
+ ### Oracle
440
+
441
+ ## Registry and Services
442
+
443
+ ### Principles
444
+
445
+ - 1 service per object type and major version
446
+ - registry service guards write access to registry
447
+ - all other objects registered via registry service
448
+ - root object for the complete tree is the protocol object
449
+ - under the root object a single registry object is registered (= global registry/ethereum mainnet)
450
+
451
+
452
+ ### Service Responsibilities
453
+
454
+ Registry Service
455
+
456
+ - deployed and registered during bootstrapping of registry
457
+ - used to register tokens and other services by registry owner
458
+ - an object may only be registered by the service designated by the type of the object
459
+ - to register an object the parent object needs already be registered
460
+ - the type of the object to be registered needs to match a valid child type/parent type combination
461
+
462
+ Instance Service
463
+
464
+ - deploys master instance during its own bootstrapping (if allowed by contract size)
465
+ - registered via registry service by registry owner
466
+ - registeres master instance during its own registration by regsitry owner
467
+ - deploys and registeres new instances (= instance factory) by instance owner (instance owner is a permissionless role, anybody may creates a new instance)
468
+ - provides upgrade functionality to instance owners
469
+
470
+ Product Service
471
+
472
+ - registered via registry service by registry owner
473
+ - registers products for registered instances via registry service by product owner (product owner role is permissend by the product's instance)
474
+ - registers applications/policies for registered products via registry service
475
+
476
+ Distribution Service
477
+
478
+ - registered via registry service by registry owner
479
+ - registers distribution components for registered products via registry service by distribution owner (distribution owner role is permissend by the product's instance)
480
+ - registers distributors for registered distribution components via registry service
481
+
482
+ ## Contract Organisation
483
+
484
+ now
485
+
486
+ contracts
487
+ components
488
+ instance
489
+ registry
490
+ shared
491
+ types
492
+
493
+
494
+ contracts
495
+ component
496
+ pool
497
+ Pool.sol
498
+ PoolService.sol
499
+ oracle
500
+ distribution
501
+ product
502
+ Product.sol
503
+ ProductService.sol
504
+ Component.sol
505
+ ComponentService.sol
506
+ instance
507
+ Instance.sol
508
+ InstanceAdmin.sol
509
+ InstanceReader.sol
510
+ InstanceService.sol
511
+ InstanceServiceManager.sol
512
+ registry
513
+ ChainNft.sol
514
+ Registry.sol
515
+ RegistryAdmin.sol
516
+ RegistryService.sol
517
+ RegistryServiceManager.sol
518
+ shared
519
+ Registerable.sol
520
+ RegisterableUpgradable.sol
521
+ type
522
+ NftId.sol
523
+ ObjectType.sol
524
+
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/f645c5111c2420a388e33f4893639ab3.json"
4
+ }