@etherisc/gif-next 0.0.2-8459327 → 0.0.2-8469187-381

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (663) hide show
  1. package/README.md +222 -77
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1735 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +817 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1400 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +465 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +407 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +652 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1234 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +844 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +939 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +950 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +838 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1284 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -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 +1429 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
  66. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
  68. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  69. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  70. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
  72. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +734 -451
  74. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +1102 -0
  76. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  77. package/artifacts/contracts/instance/Instance.sol/Instance.json +810 -530
  78. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2400 -0
  80. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +872 -0
  82. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2526 -0
  84. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1348 -0
  86. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +792 -0
  88. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
  90. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
  91. package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
  92. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  93. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  94. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  96. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  98. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  100. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  102. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  103. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  104. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  105. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  106. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  108. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  109. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  110. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  111. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  112. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  113. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  114. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  115. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.json +10 -0
  116. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  117. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  118. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
  120. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +849 -0
  122. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  124. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
  126. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  128. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +863 -0
  130. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  131. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  132. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +830 -0
  134. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1232 -0
  136. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +844 -0
  138. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  140. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  141. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +886 -0
  142. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  144. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  145. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +895 -0
  146. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  148. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  149. package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
  150. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  151. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  152. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  153. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  154. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +886 -0
  156. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  157. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  158. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +810 -0
  160. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  161. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1149 -0
  162. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  163. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +844 -0
  164. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  166. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  167. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +906 -0
  168. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +804 -0
  170. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  171. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  172. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  174. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  175. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +652 -0
  176. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  177. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
  178. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  179. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +665 -0
  180. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  182. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  183. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  184. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +874 -0
  186. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  187. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  188. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +834 -0
  190. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  191. package/artifacts/contracts/product/Product.sol/Product.json +1107 -0
  192. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  193. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  194. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  195. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
  196. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  198. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1055 -113
  200. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  201. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1072 -0
  202. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  203. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  204. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  206. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/Registry.sol/Registry.json +1543 -176
  208. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  209. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2255 -0
  210. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  211. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
  212. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  213. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1298 -0
  214. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  215. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +793 -0
  216. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
  218. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  220. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  221. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
  222. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  223. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +705 -0
  224. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  225. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +721 -0
  226. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  227. package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
  228. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  230. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +882 -0
  232. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  235. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  236. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  238. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  239. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  240. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +620 -0
  242. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  244. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  245. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
  246. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  247. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +146 -0
  248. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  249. package/artifacts/contracts/{registry/IRegistry.sol/IRegisterable.json → shared/INftOwnable.sol/INftOwnable.json} +72 -72
  250. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  251. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  252. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  253. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +179 -158
  254. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  255. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  256. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  257. package/artifacts/contracts/shared/IService.sol/IService.json +428 -0
  258. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  259. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  260. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  261. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
  262. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +228 -0
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +397 -0
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  274. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  275. package/artifacts/contracts/shared/Service.sol/Service.json +482 -0
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  280. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2747 -0
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  286. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  287. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  288. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  289. package/artifacts/contracts/staking/Staking.sol/Staking.json +3175 -0
  290. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +867 -0
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +786 -0
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
  302. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  303. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  304. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  305. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -0
  306. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  307. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  308. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  310. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +270 -0
  312. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  314. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  316. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  318. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  320. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  322. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  323. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  324. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  326. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  327. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  328. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  330. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  332. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  334. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  336. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  338. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  340. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  342. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  344. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  346. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  348. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  350. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  352. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  354. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  355. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  356. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  357. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  358. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +65 -0
  360. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
  362. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  363. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  364. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  365. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +88 -0
  366. package/contracts/accounting/AccountingService.sol +274 -0
  367. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  368. package/contracts/accounting/IAccountingService.sol +47 -0
  369. package/contracts/authorization/AccessAdmin.sol +679 -0
  370. package/contracts/authorization/AccessAdminLib.sol +678 -0
  371. package/contracts/authorization/AccessManagerCloneable.sol +140 -0
  372. package/contracts/authorization/Authorization.sol +190 -0
  373. package/contracts/authorization/IAccess.sol +66 -0
  374. package/contracts/authorization/IAccessAdmin.sol +142 -0
  375. package/contracts/authorization/IAuthorization.sol +26 -0
  376. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  377. package/contracts/authorization/ServiceAuthorization.sol +300 -0
  378. package/contracts/distribution/BasicDistribution.sol +140 -0
  379. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  380. package/contracts/distribution/Distribution.sol +245 -0
  381. package/contracts/distribution/DistributionService.sol +448 -0
  382. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  383. package/contracts/distribution/IDistributionComponent.sol +45 -0
  384. package/contracts/distribution/IDistributionService.sol +115 -0
  385. package/contracts/examples/fire/DamageLevel.sol +59 -0
  386. package/contracts/examples/fire/FirePool.sol +86 -0
  387. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  388. package/contracts/examples/fire/FireProduct.sol +433 -0
  389. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  390. package/contracts/examples/fire/FireUSD.sol +26 -0
  391. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  392. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  393. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  394. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  395. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  396. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  397. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  398. package/contracts/instance/BaseStore.sol +93 -0
  399. package/contracts/instance/BundleSet.sol +130 -0
  400. package/contracts/instance/IBaseStore.sol +37 -0
  401. package/contracts/instance/IInstance.sol +155 -17
  402. package/contracts/instance/IInstanceService.sol +119 -0
  403. package/contracts/instance/Instance.sol +335 -48
  404. package/contracts/instance/InstanceAdmin.sol +307 -0
  405. package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
  406. package/contracts/instance/InstanceReader.sol +606 -0
  407. package/contracts/instance/InstanceService.sol +514 -0
  408. package/contracts/instance/InstanceServiceManager.sol +39 -0
  409. package/contracts/instance/InstanceStore.sol +323 -0
  410. package/contracts/instance/ProductStore.sol +290 -0
  411. package/contracts/instance/RiskSet.sol +126 -0
  412. package/contracts/instance/TargetNames.sol +10 -0
  413. package/contracts/instance/base/BalanceStore.sol +121 -0
  414. package/contracts/instance/base/Cloneable.sol +28 -0
  415. package/contracts/instance/base/ObjectCounter.sol +20 -0
  416. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  417. package/contracts/instance/base/ObjectSet.sol +77 -0
  418. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  419. package/contracts/instance/module/IBundle.sol +21 -0
  420. package/contracts/instance/module/IComponents.sol +60 -0
  421. package/contracts/instance/module/IDistribution.sol +54 -0
  422. package/contracts/instance/module/IPolicy.sol +105 -0
  423. package/contracts/instance/module/IRisk.sol +16 -0
  424. package/contracts/mock/Dip.sol +26 -0
  425. package/contracts/oracle/BasicOracle.sol +44 -0
  426. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  427. package/contracts/oracle/IOracle.sol +41 -0
  428. package/contracts/oracle/IOracleComponent.sol +33 -0
  429. package/contracts/oracle/IOracleService.sol +66 -0
  430. package/contracts/oracle/Oracle.sol +152 -0
  431. package/contracts/oracle/OracleService.sol +310 -0
  432. package/contracts/oracle/OracleServiceManager.sol +39 -0
  433. package/contracts/pool/BasicPool.sol +161 -0
  434. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  435. package/contracts/pool/BundleService.sol +386 -0
  436. package/contracts/pool/BundleServiceManager.sol +39 -0
  437. package/contracts/pool/IBundleService.sol +116 -0
  438. package/contracts/pool/IPoolComponent.sol +62 -0
  439. package/contracts/pool/IPoolService.sol +170 -0
  440. package/contracts/pool/Pool.sol +331 -0
  441. package/contracts/pool/PoolLib.sol +341 -0
  442. package/contracts/pool/PoolService.sol +614 -0
  443. package/contracts/pool/PoolServiceManager.sol +39 -0
  444. package/contracts/product/ApplicationService.sol +327 -0
  445. package/contracts/product/ApplicationServiceManager.sol +38 -0
  446. package/contracts/product/BasicProduct.sol +48 -0
  447. package/contracts/product/BasicProductAuthorization.sol +63 -0
  448. package/contracts/product/ClaimService.sol +626 -0
  449. package/contracts/product/ClaimServiceManager.sol +38 -0
  450. package/contracts/product/IApplicationService.sol +88 -0
  451. package/contracts/product/IClaimService.sol +136 -0
  452. package/contracts/product/IPolicyService.sol +102 -0
  453. package/contracts/product/IPricingService.sol +40 -0
  454. package/contracts/product/IProductComponent.sol +62 -0
  455. package/contracts/product/IRiskService.sol +48 -0
  456. package/contracts/product/PolicyService.sol +645 -0
  457. package/contracts/product/PolicyServiceLib.sol +139 -0
  458. package/contracts/product/PolicyServiceManager.sol +39 -0
  459. package/contracts/product/PricingService.sol +306 -0
  460. package/contracts/product/PricingServiceManager.sol +39 -0
  461. package/contracts/product/Product.sol +491 -0
  462. package/contracts/product/RiskService.sol +189 -0
  463. package/contracts/product/RiskServiceManager.sol +39 -0
  464. package/contracts/registry/ChainNft.sol +175 -61
  465. package/contracts/registry/IRegistry.sol +143 -51
  466. package/contracts/registry/IRegistryService.sol +62 -0
  467. package/contracts/registry/IRelease.sol +29 -0
  468. package/contracts/registry/ITransferInterceptor.sol +6 -0
  469. package/contracts/registry/Registry.sol +667 -140
  470. package/contracts/registry/RegistryAdmin.sol +173 -0
  471. package/contracts/registry/RegistryAuthorization.sol +337 -0
  472. package/contracts/registry/RegistryService.sol +241 -0
  473. package/contracts/registry/RegistryServiceManager.sol +53 -0
  474. package/contracts/registry/ReleaseAdmin.sol +199 -0
  475. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  476. package/contracts/registry/ReleaseRegistry.sol +525 -0
  477. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  478. package/contracts/registry/TokenRegistry.sol +317 -0
  479. package/contracts/shared/Component.sol +210 -0
  480. package/contracts/shared/ComponentService.sol +691 -0
  481. package/contracts/shared/ComponentServiceManager.sol +38 -0
  482. package/contracts/shared/ContractLib.sol +312 -0
  483. package/contracts/shared/IComponent.sol +58 -0
  484. package/contracts/shared/IComponentService.sol +111 -0
  485. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  486. package/contracts/shared/ILifecycle.sol +31 -0
  487. package/contracts/shared/INftOwnable.sol +27 -0
  488. package/contracts/shared/IPolicyHolder.sol +35 -0
  489. package/contracts/shared/IRegisterable.sol +36 -0
  490. package/contracts/shared/IRegistryLinked.sol +11 -0
  491. package/contracts/shared/IService.sol +23 -0
  492. package/contracts/shared/InitializableERC165.sol +35 -0
  493. package/contracts/shared/InstanceLinkedComponent.sol +192 -0
  494. package/contracts/shared/Lifecycle.sol +88 -0
  495. package/contracts/shared/NftIdSet.sol +65 -0
  496. package/contracts/shared/NftOwnable.sol +129 -0
  497. package/contracts/shared/PolicyHolder.sol +63 -0
  498. package/contracts/shared/Registerable.sol +106 -0
  499. package/contracts/shared/RegistryLinked.sol +38 -0
  500. package/contracts/shared/Service.sol +67 -0
  501. package/contracts/shared/TokenHandler.sol +342 -0
  502. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  503. package/contracts/staking/IStaking.sol +366 -0
  504. package/contracts/staking/IStakingService.sol +127 -0
  505. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  506. package/contracts/staking/Staking.sol +797 -0
  507. package/contracts/staking/StakingLib.sol +195 -0
  508. package/contracts/staking/StakingManager.sol +53 -0
  509. package/contracts/staking/StakingReader.sol +171 -0
  510. package/contracts/staking/StakingService.sol +321 -0
  511. package/contracts/staking/StakingServiceManager.sol +46 -0
  512. package/contracts/staking/StakingStore.sol +1368 -0
  513. package/contracts/staking/TargetHandler.sol +132 -0
  514. package/contracts/staking/TargetManagerLib.sol +234 -0
  515. package/contracts/type/AddressSet.sol +58 -0
  516. package/contracts/type/Amount.sol +154 -0
  517. package/contracts/{types → type}/Blocknumber.sol +38 -19
  518. package/contracts/type/ChainId.sol +101 -0
  519. package/contracts/type/ClaimId.sol +80 -0
  520. package/contracts/type/DistributorType.sol +55 -0
  521. package/contracts/type/Fee.sol +66 -0
  522. package/contracts/type/Key32.sol +50 -0
  523. package/contracts/type/Key32Set.sol +62 -0
  524. package/contracts/type/NftId.sol +85 -0
  525. package/contracts/type/NftIdSet.sol +62 -0
  526. package/contracts/type/ObjectType.sol +307 -0
  527. package/contracts/type/PayoutId.sol +82 -0
  528. package/contracts/type/Referral.sol +90 -0
  529. package/contracts/type/RequestId.sol +75 -0
  530. package/contracts/type/RiskId.sol +75 -0
  531. package/contracts/type/RoleId.sol +180 -0
  532. package/contracts/type/Seconds.sol +120 -0
  533. package/contracts/type/Selector.sol +107 -0
  534. package/contracts/type/StateId.sol +149 -0
  535. package/contracts/type/String.sol +65 -0
  536. package/contracts/{types → type}/Timestamp.sol +53 -12
  537. package/contracts/{types → type}/UFixed.sol +97 -39
  538. package/contracts/type/Version.sol +159 -0
  539. package/contracts/upgradeability/IVersionable.sol +56 -0
  540. package/contracts/upgradeability/ProxyManager.sol +246 -0
  541. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  542. package/contracts/upgradeability/Versionable.sol +62 -0
  543. package/package.json +22 -8
  544. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  545. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  546. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  547. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  548. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  549. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  550. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  551. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  552. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  553. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  554. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  555. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  556. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  558. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  560. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  562. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  564. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  566. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  568. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  570. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  572. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  574. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  576. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  577. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  578. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  579. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  580. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  581. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  582. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  583. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  584. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  585. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  586. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  587. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  588. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  589. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  591. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  592. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  593. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  594. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  595. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  596. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  597. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  598. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  599. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  600. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  602. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  604. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  605. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  606. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  607. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  608. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -162
  609. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  610. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  611. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  612. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  613. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  614. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  615. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  617. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  618. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  619. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  620. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  621. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  622. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  623. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  624. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  625. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  626. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  627. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  628. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  630. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  631. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  632. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  634. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  635. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  636. package/contracts/components/Component.sol +0 -60
  637. package/contracts/components/IPool.sol +0 -9
  638. package/contracts/components/IProduct.sol +0 -9
  639. package/contracts/components/Pool.sol +0 -22
  640. package/contracts/components/Product.sol +0 -55
  641. package/contracts/experiment/errors/Require.sol +0 -38
  642. package/contracts/experiment/errors/Revert.sol +0 -44
  643. package/contracts/experiment/inheritance/A.sol +0 -53
  644. package/contracts/experiment/inheritance/B.sol +0 -28
  645. package/contracts/experiment/inheritance/C.sol +0 -34
  646. package/contracts/experiment/inheritance/IA.sol +0 -13
  647. package/contracts/experiment/inheritance/IB.sol +0 -10
  648. package/contracts/experiment/inheritance/IC.sol +0 -12
  649. package/contracts/experiment/types/TypeA.sol +0 -47
  650. package/contracts/experiment/types/TypeB.sol +0 -29
  651. package/contracts/instance/access/Access.sol +0 -165
  652. package/contracts/instance/access/IAccess.sol +0 -63
  653. package/contracts/instance/component/ComponentModule.sol +0 -213
  654. package/contracts/instance/component/IComponent.sol +0 -73
  655. package/contracts/instance/policy/IPolicy.sol +0 -51
  656. package/contracts/instance/policy/PolicyModule.sol +0 -91
  657. package/contracts/instance/pool/IPoolModule.sol +0 -29
  658. package/contracts/instance/pool/PoolModule.sol +0 -73
  659. package/contracts/instance/product/IProductService.sol +0 -36
  660. package/contracts/instance/product/ProductService.sol +0 -112
  661. package/contracts/registry/IChainNft.sol +0 -21
  662. package/contracts/types/ChainId.sol +0 -38
  663. package/contracts/types/NftId.sol +0 -51
package/README.md CHANGED
@@ -1,4 +1,22 @@
1
- # gif-next (Generic Insurance Framework next version)
1
+ # GIF-Next (Generic Insurance Framework, next version)
2
+
3
+ ## Dependencies
4
+
5
+ See `remappings.txt` for GIF-Next depencies
6
+
7
+ ## Submodules checkout
8
+
9
+ For initial checkout call
10
+
11
+ ```shell
12
+ git submodule update --init --recursive
13
+ ```
14
+
15
+ This repository uses submodules. To checkout or update to the latest submodules, run the following command after updating to any revision (or checking out the repository)
16
+
17
+ ```shell
18
+ git submodule update --recursive
19
+ ```
2
20
 
3
21
  ## Hardhat
4
22
 
@@ -13,18 +31,94 @@ npm run test-with-gas
13
31
  npm run coverage
14
32
  ```
15
33
 
16
- ### Deployment
34
+ ### Docgen
35
+
36
+ Produce `solidty-docgen` documentation using the command below.
37
+
38
+ ```shell
39
+ hh docgen
40
+ ```
41
+
42
+ The resulting markdown files are written to `docs`
43
+
44
+
45
+ ### Full protocol deployment
46
+
47
+ Install the dependencies before running the script below for the first time.
17
48
 
49
+ ```bash
50
+ npm install
18
51
  ```
19
- hh run --network <networkname> scripts/deploy.ts
52
+
53
+ The deploy script will deploy all required contracts for gif and create a test instance.
54
+
55
+ ```bash
56
+ # run deployment on a locally created ganache instance
57
+ hh run scripts/deploy_gif.ts
58
+ ```
59
+
60
+ ```bash
61
+ # set appropriate values vor env variables (see below)
62
+
63
+ # run deployment on another network
64
+ hh run --network <networkname> scripts/deploy_gif.ts
65
+ ```
66
+
67
+ The deployment will persist deployment information into the files `deployments/<chainid>/deployment_state.json`, `deployments/<chainid>/libraries.json` and `deployments/<chainid>/verification_log.json`.
68
+ This data can then be used for verification of the deployed contracts on etherscan/polygonscan.
69
+
70
+ 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:
71
+
72
+ ```bash
73
+ hh run --network <networkname> scripts/verify_deployment.ts
74
+ ```
75
+
76
+ Environment variables:
77
+
78
+ - `WRITE_ADDRESSES_TO_FILE` set to `true` to write the addresses of the deployed contracts to a file (default: `false`)
79
+ - `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`)
80
+ - `GAS_PRICE` set to the gas price to use for deployment (default: `undefined`)
81
+ - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
82
+ - `DIP_ADDRESS` the address of the already deployed DIP token. if not set, the script will deploy a new DIP token
83
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
84
+ - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
85
+
86
+ ### Deploy full protocol with fire example components
87
+
88
+ ```bash
89
+ hh run scripts/deploy_all.ts
90
+ ```
91
+
92
+ Like before, use the `--network` option to deploy on a different network.
93
+
94
+ ### Deploy only the fire example components
95
+
96
+ ```bash
97
+ hh run scripts/deploy_fire_components.ts
20
98
  ```
21
99
 
22
- Networks:
23
- - hardhat (dynamically created network - https://hardhat.org/hardhat-network/docs/overview)
24
- - anvil (anvsil chain running in container next when using devcontainer)
25
- - mumbai (polygon testnet, requires WEB3_INFURA_PROJECT_ID)
26
- - mainnet (polygon mainnet, requires WEB3_INFURA_PROJECT_ID)
100
+ 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.
27
101
 
102
+ Like before, use the `--network` option to deploy on a different network.
103
+
104
+ ### Create a new instance
105
+
106
+ Requires previous step to be completed.
107
+
108
+ ```bash
109
+ # set appropriate values vor env variables (see below)
110
+
111
+ hh run --network <networkname> scripts/new_instance.ts
112
+ ```
113
+
114
+ 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.
115
+ The instance owner will be the 11th address of the wallet.
116
+
117
+ Environment variables:
118
+
119
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
120
+ - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
121
+ - `REGISTRY_ADDRESS` the address of the registry that is already deployed and configured and has a valid master instance
28
122
 
29
123
  ### Console
30
124
 
@@ -41,6 +135,27 @@ await provider.getBalance(me)
41
135
 
42
136
  https://hardhat.org/hardhat-runner/docs/guides/compile-contracts
43
137
 
138
+ ### Scripts to find syntax bugs in code
139
+
140
+ #### find methods missing the `restricted` modifier
141
+
142
+ ```bash
143
+ hh run scripts/find_unrestricted_methods.ts
144
+ ```
145
+
146
+ Checks all public/external methods in services and components for methods that are missing the `restricted` modifier but should have one.
147
+
148
+ 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).
149
+ 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`).
150
+
151
+ #### find methods missing the `virtual` keyword
152
+
153
+ ```bash
154
+ hh run scripts/find_missing_virtual_methods.ts.ts
155
+ ```
156
+
157
+ Checks all public/external methods in services and components for methods that are not marked as `virtual` but should be.
158
+
44
159
  ## Forge
45
160
 
46
161
  ### Commands
@@ -48,104 +163,134 @@ https://hardhat.org/hardhat-runner/docs/guides/compile-contracts
48
163
  ```shell
49
164
  forge build
50
165
 
166
+ # contract sizes
167
+ forge build --sizes
168
+
51
169
  forge test
52
170
 
53
171
  # run single test case
54
- forge test --mt test_decimals
172
+ forge test --mt test_deployAllSetup
173
+
174
+ # run all tests except long running
175
+ forge test --nmt longRunning
55
176
 
56
- # run single test case with substantial logginglogging
177
+ # run single test case with substantial logging
57
178
  # to include logs as well use -vvvvv
58
- forge test -vvvv --mt test_decimals
179
+ # to add internal functions to trace add --
180
+ forge test --decode-internal --mt test_decimals -vvvv
59
181
 
60
182
  # provide gas report for a single test
61
183
  forge test --mt test_decimals --gas-report
62
184
 
185
+ # provide code coverage report
63
186
  forge coverage
187
+ forge coverage --report lcov
64
188
  ```
65
189
 
66
- Chisel session
67
- ```typescript
68
- import "./contracts/components/Component.sol";
69
- import "./contracts/components/IPool.sol";
70
- import "./contracts/components/IProduct.sol";
71
- import "./contracts/components/Pool.sol";
72
- import "./contracts/components/Product.sol";
73
- import "./contracts/instance/access/Access.sol";
74
- import "./contracts/instance/access/IAccess.sol";
75
- import "./contracts/instance/component/ComponentModule.sol";
76
- import "./contracts/instance/component/IComponent.sol";
77
- import "./contracts/instance/IInstance.sol";
78
- import "./contracts/instance/policy/IPolicy.sol";
79
- import "./contracts/instance/policy/PolicyModule.sol";
80
- import "./contracts/instance/product/IProductService.sol";
81
- import "./contracts/instance/product/ProductService.sol";
82
- import "./contracts/registry/IRegistry.sol";
83
-
84
- import {Instance} from "./contracts/instance/Instance.sol";
85
- import {Registry} from "./contracts/registry/Registry.sol";
86
- import {DeployAll} from "./scripts/DeployAll.s.sol";
87
- import {TestPool} from "./test_forge/mock/TestPool.sol";
88
- import {TestProduct} from "./test_forge/mock/TestProduct.sol";
89
-
90
- string memory instanceOwnerName = "instanceOwner";
91
- address instanceOwner = vm.addr(uint256(keccak256(abi.encodePacked(instanceOwnerName))));
92
-
93
- string memory productOwnerName = "productOwner";
94
- address productOwner = vm.addr(uint256(keccak256(abi.encodePacked(productOwnerName))));
95
-
96
- string memory poolOwnerName = "poolOwner";
97
- address poolOwner = vm.addr(uint256(keccak256(abi.encodePacked(poolOwnerName))));
98
-
99
- string memory customerName = "customer";
100
- address customer = vm.addr(uint256(keccak256(abi.encodePacked(customerName))));
101
-
102
- DeployAll deployer = new DeployAll();
103
- (
104
- Registry registry,
105
- Instance instance,
106
- TestProduct product,
107
- TestPool pool
108
- ) = deployer.run(
109
- instanceOwner,
110
- productOwner,
111
- poolOwner);
112
-
113
- ProductService ps = ProductService(address(registry));
114
-
115
- uint256 bundleNftId = 99;
116
- uint256 sumInsuredAmount = 1000*10**6;
117
- uint256 premiumAmount = 110*10**6;
118
- uint256 lifetime =365*24*3600;
119
- uint256 policyNftId = ps.createApplicationForBundle(customer, bundleNftId, sumInsuredAmount, premiumAmount, lifetime);
190
+ ### Aliases
120
191
 
121
- ```
122
192
 
193
+ | Alias | Command |
194
+ | --- | --- |
195
+ | fb | forge build |
196
+ | fbw | forge build --watch |
197
+ | fbc | forge build contracts/ |
198
+ | fbcw | forge build --watch contracts/ |
199
+ | ft | forge test |
200
+ | ftf | forge test --nmt "_longRunning" |
201
+ | ftt | forge test -vvvv --mt |
202
+ | fttg | forge test -vvvv --gas-report --mt |
203
+ | fttw | forge test -vvvv --watch --mt |
204
+ | ftc | forge test -vvvv --mc |
205
+ | ftcw | forge test -vvvv --watch --mc |
206
+ | fcf | forge coverage --nmt "_longRunning" |
207
+ | fcfr | forge coverage --nmt "_longRunning" --report lcov |
123
208
 
124
- ### Documentation
209
+ **Important**: All profiles are run using the foundry `ci` profile which disables the optimizer (for speed).
125
210
 
126
- https://book.getfoundry.sh/reference/
211
+ ```
212
+ ### Library Linking
127
213
 
128
- ## Style Guide
214
+ https://ethereum.stackexchange.com/questions/153411/does-foundry-support-dynamical-library-linking-in-solidity
129
215
 
130
- Solidity code is to be written according to the [Solidity Style Guide](https://docs.soliditylang.org/en/latest/style-guide.html).
216
+ ```toml
217
+ # foundry.toml
218
+
219
+ [profile.default]
220
+ # expected format(example below): libraries = ["<path>:<lib name>:<address>"]
221
+ libraries = ["src/libraries/MyLibrary.sol:MyLibrary:0x..."]
222
+ ```
131
223
 
132
- Documentation of the code should be written inline using [NatSpec](https://docs.soliditylang.org/en/latest/natspec-format.html).
224
+ ### Documentation
133
225
 
134
- ### Naming conventions
226
+ https://book.getfoundry.sh/reference/
135
227
 
136
- Additionally, we use the following naming conventions:
228
+ ## Style Guide
137
229
 
138
- - 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.
139
- - 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.
140
- - 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/).
230
+ Please see https://docs.etherisc.com/gif-next/3.x/ for style guide and general coding rules.
141
231
 
142
232
  ### Automatic code formatting
143
233
 
144
234
  We use prettier and the solidity plugin to format the code automatically.
145
235
  The plugin is configured to use the style guide mentioned above.
146
- To execute formatting run `npm run prettier`.
236
+ To execute format checks run `npm run styleCheck`.
237
+ To execute formatting run `npm run styleFix`.
147
238
 
148
239
  ### Linting
149
240
 
150
241
  We use solhint to lint the code.
151
242
  To execute linting run `npm run lint`.
243
+
244
+ ## Storage layout
245
+
246
+ ### Analysis tool
247
+
248
+ Command line call
249
+
250
+ ```bash
251
+ hh run scripts/analyze_storage_layout.ts
252
+ ```
253
+
254
+ Analyses contract `MockStorageLayout.sol` and writes the storage layout to `storage_layout.json` and `storage_layout.csv`.
255
+ New structs must be added to `MockStorageLayout` to be included in analysis.
256
+
257
+ Storage layout details:
258
+ - Items fill up the current slot if possible
259
+ - If not enough space is left in the current slot, the item is placed in the next slot
260
+ - Stucts and arrays always start a new slot
261
+ - Items following a struct or array always start a new slot
262
+
263
+ More at https://docs.soliditylang.org/en/latest/internals/layout_in_storage.html
264
+
265
+ ### Custom types sizes
266
+
267
+ | Type | Size |
268
+ | --- | --- |
269
+ | Amount | 12 bytes |
270
+ | Blocknumber | 4 bytes |
271
+ | ClaimId | 2 bytes |
272
+ | DistributorType | 8 bytes |
273
+ | NftId | 12 bytes |
274
+ | ObjectType | 1 byte |
275
+ | ReferralId | 8 bytes |
276
+ | RoleId | 1 byte |
277
+ | RiskId | 8 bytes |
278
+ | Seconds | 5 bytes |
279
+ | Selector | 4 bytes |
280
+ | StateId | 1 byte |
281
+ | Str | 32 bytes |
282
+ | Timestamp | 5 bytes |
283
+ | Version | 3 byte |
284
+ | VersionPart | 1 byte |
285
+ | UFixed | 20 bytes |
286
+ | address | 20 bytes |
287
+ | uint256 | 32 bytes |
288
+ | uint128 | 16 bytes |
289
+ | uint160 | 20 bytes |
290
+ | uint64 | 8 bytes |
291
+ | uint32 | 4 bytes |
292
+ | uint16 | 2 bytes |
293
+ | string | 32 bytes |
294
+ | bytes | 32 bytes |
295
+ | bytes8 | 8 byte |
296
+ | bool | 1 byte |
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/a11472d155cc1e3900b16d2850f59142.json"
4
+ }