@etherisc/gif-next 0.0.2-93de5de-423 → 0.0.2-941d319-710

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 (723) hide show
  1. package/README.md +139 -93
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1372 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1244 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +368 -362
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1809 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +930 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +848 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → distribution/IDistributionService.sol/IDistributionService.json} +591 -696
  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 +1484 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2053 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1439 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1647 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2585 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +650 -1982
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +666 -82
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +649 -2725
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2349 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1983 -723
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +610 -317
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +202 -123
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3792 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  101. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  102. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  103. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  104. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  105. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  106. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  107. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  108. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +957 -0
  110. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  112. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  114. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  116. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +762 -0
  118. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  119. package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +312 -292
  120. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1042 -0
  122. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +810 -0
  124. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  125. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +486 -566
  126. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  128. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1438 -0
  130. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +866 -0
  132. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
  134. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  135. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +401 -383
  136. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1449 -0
  138. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  139. package/artifacts/contracts/pool/Pool.sol/Pool.json +1025 -0
  140. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  142. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1833 -0
  144. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +866 -0
  146. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1036 -0
  148. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +790 -0
  150. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  151. package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +455 -542
  152. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  154. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1536 -0
  156. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +886 -0
  158. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  159. package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +415 -73
  160. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
  162. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
  164. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +336 -306
  166. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  167. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +520 -310
  168. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  169. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +285 -192
  170. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1404 -0
  172. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +854 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +932 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +814 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1117 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +515 -31
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -122
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +999 -124
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2147 -0
  200. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +389 -257
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +213 -110
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  208. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  210. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +338 -174
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1551 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +862 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +248 -131
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1175 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +707 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +101 -20
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +38 -10
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +163 -3
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  249. package/artifacts/contracts/shared/IService.sol/IService.json +187 -17
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +795 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +47 -70
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +145 -100
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  269. package/artifacts/contracts/shared/Service.sol/Service.json +172 -104
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +2360 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +2820 -0
  282. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +858 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +544 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1344 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +766 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2637 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +657 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +251 -0
  304. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  306. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  308. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  310. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  312. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  314. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  315. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  316. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  318. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  319. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  320. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  322. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  324. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  326. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  328. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  330. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  332. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +289 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  336. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  338. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  340. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
  342. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  344. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  346. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  348. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  350. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  351. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +656 -0
  354. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
  356. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  357. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
  358. package/contracts/accounting/AccountingService.sol +274 -0
  359. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  360. package/contracts/accounting/IAccountingService.sol +47 -0
  361. package/contracts/authorization/AccessAdmin.sol +780 -0
  362. package/contracts/authorization/AccessAdminLib.sol +396 -0
  363. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  364. package/contracts/authorization/Authorization.sol +169 -0
  365. package/contracts/authorization/IAccess.sol +67 -0
  366. package/contracts/authorization/IAccessAdmin.sol +144 -0
  367. package/contracts/authorization/IAuthorization.sol +26 -0
  368. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  369. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  370. package/contracts/distribution/BasicDistribution.sol +141 -0
  371. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  372. package/contracts/distribution/Distribution.sol +247 -0
  373. package/contracts/distribution/DistributionService.sol +448 -0
  374. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  375. package/contracts/distribution/IDistributionComponent.sol +45 -0
  376. package/contracts/distribution/IDistributionService.sol +115 -0
  377. package/contracts/examples/fire/DamageLevel.sol +59 -0
  378. package/contracts/examples/fire/FirePool.sol +86 -0
  379. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  380. package/contracts/examples/fire/FireProduct.sol +433 -0
  381. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  382. package/contracts/examples/fire/FireUSD.sol +26 -0
  383. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  384. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  386. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  387. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  388. package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
  389. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  390. package/contracts/instance/BundleSet.sol +130 -0
  391. package/contracts/instance/IInstance.sol +119 -66
  392. package/contracts/instance/IInstanceService.sol +84 -26
  393. package/contracts/instance/Instance.sol +256 -200
  394. package/contracts/instance/InstanceAdmin.sol +383 -0
  395. package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
  396. package/contracts/instance/InstanceReader.sol +530 -191
  397. package/contracts/instance/InstanceService.sol +385 -361
  398. package/contracts/instance/InstanceServiceManager.sol +14 -29
  399. package/contracts/instance/InstanceStore.sol +298 -0
  400. package/contracts/instance/RiskSet.sol +126 -0
  401. package/contracts/instance/base/BalanceStore.sol +121 -0
  402. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  403. package/contracts/instance/base/ObjectCounter.sol +20 -0
  404. package/contracts/instance/base/ObjectLifecycle.sol +109 -0
  405. package/contracts/instance/base/ObjectSet.sol +77 -0
  406. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  407. package/contracts/instance/module/IBundle.sol +10 -9
  408. package/contracts/instance/module/IComponents.sol +62 -0
  409. package/contracts/instance/module/IDistribution.sol +25 -10
  410. package/contracts/instance/module/IPolicy.sol +78 -20
  411. package/contracts/instance/module/IRisk.sol +6 -1
  412. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  413. package/contracts/oracle/BasicOracle.sol +45 -0
  414. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  415. package/contracts/oracle/IOracle.sol +41 -0
  416. package/contracts/oracle/IOracleComponent.sol +33 -0
  417. package/contracts/oracle/IOracleService.sol +66 -0
  418. package/contracts/oracle/Oracle.sol +154 -0
  419. package/contracts/oracle/OracleService.sol +310 -0
  420. package/contracts/oracle/OracleServiceManager.sol +39 -0
  421. package/contracts/pool/BasicPool.sol +162 -0
  422. package/contracts/pool/BasicPoolAuthorization.sol +81 -0
  423. package/contracts/pool/BundleService.sol +386 -0
  424. package/contracts/pool/BundleServiceManager.sol +39 -0
  425. package/contracts/pool/IBundleService.sol +116 -0
  426. package/contracts/pool/IPoolComponent.sol +62 -0
  427. package/contracts/pool/IPoolService.sol +170 -0
  428. package/contracts/pool/Pool.sol +333 -0
  429. package/contracts/pool/PoolLib.sol +341 -0
  430. package/contracts/pool/PoolService.sol +614 -0
  431. package/contracts/pool/PoolServiceManager.sol +39 -0
  432. package/contracts/product/ApplicationService.sol +327 -0
  433. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
  434. package/contracts/product/BasicProduct.sol +49 -0
  435. package/contracts/product/BasicProductAuthorization.sol +63 -0
  436. package/contracts/product/ClaimService.sol +630 -0
  437. package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
  438. package/contracts/{instance/service → product}/IApplicationService.sol +42 -36
  439. package/contracts/product/IClaimService.sol +136 -0
  440. package/contracts/product/IPolicyService.sol +102 -0
  441. package/contracts/product/IPricingService.sol +40 -0
  442. package/contracts/product/IProductComponent.sol +62 -0
  443. package/contracts/product/IRiskService.sol +48 -0
  444. package/contracts/product/PolicyService.sol +645 -0
  445. package/contracts/product/PolicyServiceLib.sol +139 -0
  446. package/contracts/product/PolicyServiceManager.sol +39 -0
  447. package/contracts/product/PricingService.sol +306 -0
  448. package/contracts/product/PricingServiceManager.sol +39 -0
  449. package/contracts/product/Product.sol +493 -0
  450. package/contracts/product/RiskService.sol +190 -0
  451. package/contracts/product/RiskServiceManager.sol +39 -0
  452. package/contracts/registry/ChainNft.sol +83 -36
  453. package/contracts/registry/IRegistry.sol +106 -33
  454. package/contracts/registry/IRegistryService.sol +36 -41
  455. package/contracts/registry/IRelease.sol +29 -0
  456. package/contracts/registry/ITransferInterceptor.sol +1 -1
  457. package/contracts/registry/Registry.sol +481 -209
  458. package/contracts/registry/RegistryAdmin.sol +188 -0
  459. package/contracts/registry/RegistryAuthorization.sol +309 -0
  460. package/contracts/registry/RegistryService.sol +90 -132
  461. package/contracts/registry/RegistryServiceManager.sol +23 -32
  462. package/contracts/registry/ReleaseAdmin.sol +195 -0
  463. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  464. package/contracts/registry/ReleaseRegistry.sol +525 -0
  465. package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
  466. package/contracts/registry/TokenRegistry.sol +265 -64
  467. package/contracts/shared/Component.sol +214 -0
  468. package/contracts/shared/ComponentService.sol +687 -0
  469. package/contracts/shared/ComponentServiceManager.sol +38 -0
  470. package/contracts/shared/ContractLib.sol +312 -0
  471. package/contracts/shared/IComponent.sol +58 -0
  472. package/contracts/shared/IComponentService.sol +111 -0
  473. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  474. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  475. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  476. package/contracts/shared/INftOwnable.sol +6 -2
  477. package/contracts/shared/IPolicyHolder.sol +23 -14
  478. package/contracts/shared/IRegisterable.sol +22 -1
  479. package/contracts/shared/IRegistryLinked.sol +0 -1
  480. package/contracts/shared/IService.sol +12 -5
  481. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
  482. package/contracts/shared/InstanceLinkedComponent.sol +194 -0
  483. package/contracts/shared/KeyValueStore.sol +131 -0
  484. package/contracts/shared/Lifecycle.sol +88 -0
  485. package/contracts/shared/NftIdSet.sol +65 -0
  486. package/contracts/shared/NftOwnable.sol +36 -27
  487. package/contracts/shared/PolicyHolder.sol +23 -41
  488. package/contracts/shared/Registerable.sol +51 -19
  489. package/contracts/shared/RegistryLinked.sol +9 -19
  490. package/contracts/shared/Service.sol +38 -29
  491. package/contracts/shared/TokenHandler.sol +327 -12
  492. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  493. package/contracts/staking/IStaking.sol +264 -0
  494. package/contracts/staking/IStakingService.sol +127 -0
  495. package/contracts/staking/Staking.sol +746 -0
  496. package/contracts/staking/StakingLib.sol +195 -0
  497. package/contracts/staking/StakingLifecycle.sol +23 -0
  498. package/contracts/staking/StakingManager.sol +51 -0
  499. package/contracts/staking/StakingReader.sol +151 -0
  500. package/contracts/staking/StakingService.sol +321 -0
  501. package/contracts/staking/StakingServiceManager.sol +46 -0
  502. package/contracts/staking/StakingStore.sol +973 -0
  503. package/contracts/staking/TargetManagerLib.sol +211 -0
  504. package/contracts/{types → type}/AddressSet.sol +1 -1
  505. package/contracts/type/Amount.sol +154 -0
  506. package/contracts/{types → type}/Blocknumber.sol +36 -12
  507. package/contracts/type/ChainId.sol +101 -0
  508. package/contracts/{types → type}/ClaimId.sol +31 -3
  509. package/contracts/type/Fee.sol +66 -0
  510. package/contracts/{types → type}/Key32.sol +2 -2
  511. package/contracts/type/Key32Set.sol +62 -0
  512. package/contracts/{types → type}/NftId.sol +28 -15
  513. package/contracts/{types → type}/NftIdSet.sol +2 -2
  514. package/contracts/type/ObjectType.sol +307 -0
  515. package/contracts/type/PayoutId.sol +82 -0
  516. package/contracts/{types → type}/Referral.sol +6 -1
  517. package/contracts/type/RequestId.sol +75 -0
  518. package/contracts/type/RiskId.sol +75 -0
  519. package/contracts/type/RoleId.sol +180 -0
  520. package/contracts/type/Seconds.sol +115 -0
  521. package/contracts/type/Selector.sol +107 -0
  522. package/contracts/{types → type}/StateId.sol +48 -4
  523. package/contracts/type/String.sol +65 -0
  524. package/contracts/{types → type}/Timestamp.sol +36 -20
  525. package/contracts/type/UFixed.sol +263 -0
  526. package/contracts/{types → type}/Version.sol +59 -7
  527. package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
  528. package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
  529. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
  530. package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
  531. package/package.json +12 -8
  532. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  533. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  534. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  535. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  539. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  540. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  541. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
  542. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  543. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  544. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -984
  545. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  546. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  547. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  549. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  550. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  551. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  552. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  553. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  554. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  555. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -254
  556. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  557. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
  560. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  561. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
  562. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  563. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
  564. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  566. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
  568. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  570. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -935
  572. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -677
  574. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  576. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
  578. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  579. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
  580. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  581. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  582. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
  583. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -373
  585. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1109
  587. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  588. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
  589. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -716
  591. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
  593. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
  595. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  597. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  598. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  599. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  600. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
  601. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  602. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  603. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  604. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  605. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  606. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  607. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
  608. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  609. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  610. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  612. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  613. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  614. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  615. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  616. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  617. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  618. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
  619. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  620. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  621. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  622. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  623. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  624. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  625. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  626. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  627. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  628. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  629. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  631. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  633. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  635. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  637. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  639. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  640. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  641. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  643. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  644. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  645. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  647. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  649. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  651. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  653. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  655. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  656. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  657. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  658. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  659. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  660. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  661. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  662. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  663. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  664. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  665. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  666. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  667. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  668. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  669. package/contracts/components/Component.sol +0 -241
  670. package/contracts/components/Distribution.sol +0 -308
  671. package/contracts/components/IComponent.sol +0 -54
  672. package/contracts/components/IDistributionComponent.sol +0 -100
  673. package/contracts/components/IPoolComponent.sol +0 -87
  674. package/contracts/components/IProductComponent.sol +0 -39
  675. package/contracts/components/Pool.sol +0 -254
  676. package/contracts/components/Product.sol +0 -285
  677. package/contracts/instance/BundleManager.sol +0 -125
  678. package/contracts/instance/InstanceAccessManager.sol +0 -297
  679. package/contracts/instance/ObjectManager.sol +0 -84
  680. package/contracts/instance/base/ComponentService.sol +0 -134
  681. package/contracts/instance/base/KeyValueStore.sol +0 -172
  682. package/contracts/instance/base/Lifecycle.sol +0 -100
  683. package/contracts/instance/module/IAccess.sol +0 -47
  684. package/contracts/instance/module/ISetup.sol +0 -47
  685. package/contracts/instance/module/ITreasury.sol +0 -23
  686. package/contracts/instance/service/ApplicationService.sol +0 -268
  687. package/contracts/instance/service/BundleService.sol +0 -298
  688. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  689. package/contracts/instance/service/ClaimService.sol +0 -151
  690. package/contracts/instance/service/DistributionService.sol +0 -277
  691. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  692. package/contracts/instance/service/IBundleService.sol +0 -54
  693. package/contracts/instance/service/IClaimService.sol +0 -61
  694. package/contracts/instance/service/IDistributionService.sol +0 -65
  695. package/contracts/instance/service/IPolicyService.sol +0 -89
  696. package/contracts/instance/service/IPoolService.sol +0 -20
  697. package/contracts/instance/service/IProductService.sol +0 -40
  698. package/contracts/instance/service/PolicyService.sol +0 -474
  699. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  700. package/contracts/instance/service/PoolService.sol +0 -109
  701. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  702. package/contracts/instance/service/ProductService.sol +0 -233
  703. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  704. package/contracts/registry/RegistryAccessManager.sol +0 -216
  705. package/contracts/registry/ReleaseManager.sol +0 -322
  706. package/contracts/shared/ContractDeployerLib.sol +0 -72
  707. package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
  708. package/contracts/test/TestFee.sol +0 -25
  709. package/contracts/test/TestRegisterable.sol +0 -18
  710. package/contracts/test/TestRoleId.sol +0 -14
  711. package/contracts/test/TestService.sol +0 -25
  712. package/contracts/test/TestToken.sol +0 -26
  713. package/contracts/test/TestVersion.sol +0 -44
  714. package/contracts/test/TestVersionable.sol +0 -17
  715. package/contracts/types/ChainId.sol +0 -38
  716. package/contracts/types/Fee.sol +0 -56
  717. package/contracts/types/NumberId.sol +0 -52
  718. package/contracts/types/ObjectType.sol +0 -156
  719. package/contracts/types/PayoutId.sol +0 -54
  720. package/contracts/types/RiskId.sol +0 -43
  721. package/contracts/types/RoleId.sol +0 -90
  722. package/contracts/types/UFixed.sol +0 -325
  723. /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32} from "../type/Key32.sol";
5
+
6
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
+ library LibKey32Set {
8
+
9
+ struct Set {
10
+ Key32[] keys;
11
+ mapping(Key32 key => uint256 index) at;
12
+ }
13
+
14
+ error ErrorKey32SetAlreadyAdded(Key32 key);
15
+ error ErrorKey32SetNotInSet(Key32 key);
16
+
17
+
18
+ function add(Set storage set, Key32 key) external {
19
+ if (set.at[key] > 0) {
20
+ revert ErrorKey32SetAlreadyAdded(key);
21
+ }
22
+
23
+ set.keys.push(key);
24
+ set.at[key] = set.keys.length;
25
+ }
26
+
27
+ function remove(Set storage set, Key32 key) external {
28
+ uint256 nftIdIndex = set.at[key];
29
+
30
+ if (nftIdIndex == 0) {
31
+ revert ErrorKey32SetNotInSet(key);
32
+ }
33
+
34
+ uint256 toDeleteIndex = nftIdIndex - 1;
35
+ uint256 lastIndex = set.keys.length - 1;
36
+
37
+ if (lastIndex != toDeleteIndex) {
38
+ Key32 lastId = set.keys[lastIndex];
39
+ set.keys[toDeleteIndex] = lastId;
40
+ set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
41
+ }
42
+
43
+ set.keys.pop();
44
+ delete set.at[key];
45
+ }
46
+
47
+ function isEmpty(Set storage set) external view returns(bool empty) {
48
+ return set.keys.length == 0;
49
+ }
50
+
51
+ function contains(Set storage set, Key32 key) external view returns(bool inSet) {
52
+ return set.at[key] > 0;
53
+ }
54
+
55
+ function size(Set storage set) external view returns(uint256 length) {
56
+ return set.keys.length;
57
+ }
58
+
59
+ function getElementAt(Set storage set, uint256 index) external view returns(Key32 key) {
60
+ return set.keys[index];
61
+ }
62
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {ObjectType} from "./ObjectType.sol";
@@ -14,32 +14,34 @@ using {
14
14
  NftIdLib.toInt,
15
15
  NftIdLib.gtz,
16
16
  NftIdLib.eqz,
17
+ NftIdLib.eq,
17
18
  NftIdLib.toKeyId,
18
19
  NftIdLib.toKey32
19
20
  } for NftId global;
20
21
 
21
- // general pure free functions
22
- /// @dev Converts the uint256 to a NftId.
23
- function toNftId(uint256 id) pure returns (NftId) {
24
- return NftId.wrap(uint96(id));
25
- }
26
-
27
- /// @dev Return the NftId zero (0)
28
- function zeroNftId() pure returns (NftId) {
29
- return NftId.wrap(0);
30
- }
31
-
32
22
  // pure free functions for operators
33
23
  function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
34
- return NftId.unwrap(a) == NftId.unwrap(b);
24
+ return NftIdLib.eq(a, b);
35
25
  }
36
26
 
37
27
  function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
38
- return NftId.unwrap(a) != NftId.unwrap(b);
28
+ return NftIdLib.ne(a, b);
39
29
  }
40
30
 
41
31
  // library functions that operate on user defined type
42
32
  library NftIdLib {
33
+
34
+ /// @dev the zero nft id
35
+ /// is never a valid nft id and implies a non-initialized value
36
+ function zero() public pure returns (NftId) {
37
+ return NftId.wrap(0);
38
+ }
39
+
40
+ /// @dev Converts the uint256 to a NftId.
41
+ function toNftId(uint256 id) public pure returns (NftId) {
42
+ return NftId.wrap(uint96(id));
43
+ }
44
+
43
45
  /// @dev Converts the NftId to a uint256.
44
46
  function toInt(NftId nftId) public pure returns (uint96) {
45
47
  return uint96(NftId.unwrap(nftId));
@@ -57,7 +59,12 @@ library NftIdLib {
57
59
 
58
60
  /// @dev Returns true if the values are equal (==).
59
61
  function eq(NftId a, NftId b) public pure returns (bool isSame) {
60
- return eqNftId(a, b);
62
+ return NftId.unwrap(a) == NftId.unwrap(b);
63
+ }
64
+
65
+ /// @dev Returns true if the values are not equal (!=).
66
+ function ne(NftId a, NftId b) public pure returns (bool isSame) {
67
+ return NftId.unwrap(a) != NftId.unwrap(b);
61
68
  }
62
69
 
63
70
  /// @dev Returns the key32 value for the specified nft id and object type.
@@ -69,4 +76,10 @@ library NftIdLib {
69
76
  function toKeyId(NftId id) public pure returns (KeyId keyId) {
70
77
  return KeyId.wrap(bytes31(uint248(NftId.unwrap(id))));
71
78
  }
79
+
80
+ function toNftId(KeyId keyId) public pure returns (NftId nftId) {
81
+ uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
82
+ assert(keyIdInt < type(uint96).max);
83
+ return NftId.wrap(uint96(keyIdInt));
84
+ }
72
85
  }
@@ -1,7 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
4
+ import {NftId} from "../type/NftId.sol";
5
5
 
6
6
  // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
7
  library LibNftIdSet {
@@ -0,0 +1,307 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {VersionPart} from "./Version.sol";
5
+
6
+ type ObjectType is uint8;
7
+
8
+ // type bindings
9
+ using {
10
+ eqObjectType as ==,
11
+ neObjectType as !=,
12
+ ObjectTypeLib.toInt,
13
+ ObjectTypeLib.toName,
14
+ ObjectTypeLib.eqz,
15
+ ObjectTypeLib.eq,
16
+ ObjectTypeLib.gtz
17
+ } for ObjectType global;
18
+
19
+
20
+ //--- GIF object types/domains (rage: 1 - 99) -------------------------------//
21
+
22
+ function PROTOCOL() pure returns (ObjectType) {
23
+ return ObjectType.wrap(1);
24
+ }
25
+
26
+ function REGISTRY() pure returns (ObjectType) {
27
+ return ObjectType.wrap(2);
28
+ }
29
+
30
+ function STAKING() pure returns (ObjectType) {
31
+ return ObjectType.wrap(3);
32
+ }
33
+
34
+ function RELEASE() pure returns (ObjectType) {
35
+ return ObjectType.wrap(6);
36
+ }
37
+
38
+ function ROLE() pure returns (ObjectType) {
39
+ return ObjectType.wrap(7);
40
+ }
41
+
42
+ function SERVICE() pure returns (ObjectType) {
43
+ return ObjectType.wrap(8);
44
+ }
45
+
46
+ function INSTANCE() pure returns (ObjectType) {
47
+ return ObjectType.wrap(10);
48
+ }
49
+
50
+ /// @dev Generic component object type.
51
+ /// Component role id range is 11-19.
52
+ /// Stick to this range for new component object types.
53
+ function COMPONENT() pure returns (ObjectType) {
54
+ return ObjectType.wrap(11);
55
+ }
56
+
57
+ /// @dev Product object type.
58
+ /// IMPORTANT the actual value has an influence on the corresponding role id (RoleIdLib.sol).
59
+ /// Do not change this value without updating the corresponding role id calculation.
60
+ function PRODUCT() pure returns (ObjectType) {
61
+ return ObjectType.wrap(12);
62
+ }
63
+
64
+ function ORACLE() pure returns (ObjectType) {
65
+ return ObjectType.wrap(13);
66
+ }
67
+
68
+ function DISTRIBUTION() pure returns (ObjectType) {
69
+ return ObjectType.wrap(14);
70
+ }
71
+
72
+ function POOL() pure returns (ObjectType) {
73
+ return ObjectType.wrap(15);
74
+ }
75
+
76
+ /// @dev Application object type.
77
+ /// Range for NFT objects created thorugh components is 20-29.
78
+ function APPLICATION() pure returns (ObjectType) {
79
+ return ObjectType.wrap(20);
80
+ }
81
+
82
+ function POLICY() pure returns (ObjectType) {
83
+ return ObjectType.wrap(21);
84
+ }
85
+
86
+ function BUNDLE() pure returns (ObjectType) {
87
+ return ObjectType.wrap(22);
88
+ }
89
+
90
+ function DISTRIBUTOR() pure returns (ObjectType) {
91
+ return ObjectType.wrap(23);
92
+ }
93
+
94
+ /// @dev Stake object type.
95
+ /// NFT object type is 30
96
+ function STAKE() pure returns (ObjectType) {
97
+ return ObjectType.wrap(30);
98
+ }
99
+
100
+ /// @dev Staking target object type.
101
+ function TARGET() pure returns (ObjectType) {
102
+ return ObjectType.wrap(31);
103
+ }
104
+
105
+ /// @dev Accounting object type.
106
+ /// Range for non-NFT types created through components is 40+
107
+ function ACCOUNTING() pure returns (ObjectType) {
108
+ return ObjectType.wrap(40);
109
+ }
110
+
111
+ function FEE() pure returns (ObjectType) {
112
+ return ObjectType.wrap(41);
113
+ }
114
+
115
+ function PRICE() pure returns (ObjectType) {
116
+ return ObjectType.wrap(42);
117
+ }
118
+
119
+ function PREMIUM() pure returns (ObjectType) {
120
+ return ObjectType.wrap(43);
121
+ }
122
+
123
+ function RISK() pure returns (ObjectType) {
124
+ return ObjectType.wrap(44);
125
+ }
126
+
127
+ function CLAIM() pure returns (ObjectType) {
128
+ return ObjectType.wrap(45);
129
+ }
130
+
131
+ function PAYOUT() pure returns (ObjectType) {
132
+ return ObjectType.wrap(46);
133
+ }
134
+
135
+ function REQUEST() pure returns (ObjectType) {
136
+ return ObjectType.wrap(47);
137
+ }
138
+
139
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
140
+ return ObjectType.wrap(48);
141
+ }
142
+
143
+ function REFERRAL() pure returns (ObjectType) {
144
+ return ObjectType.wrap(49);
145
+ }
146
+
147
+ /// @dev Object type for GIF core target roles.
148
+ function CORE() pure returns (ObjectType) {
149
+ return ObjectType.wrap(97);
150
+ }
151
+
152
+ /// @dev Object type for target roles of contracts outside the GIF framework.
153
+ /// Example: Custom supporting contracts for a product component.
154
+ function CUSTOM() pure returns (ObjectType) {
155
+ return ObjectType.wrap(98);
156
+ }
157
+
158
+ /// @dev Object type that includes any other object type.
159
+ /// Note that eq()/'==' does not take this property into account.
160
+ function ALL() pure returns (ObjectType) {
161
+ return ObjectType.wrap(99);
162
+ }
163
+
164
+ // other pure free functions for operators
165
+ function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
166
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
167
+ }
168
+
169
+ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
170
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
171
+ }
172
+
173
+ // library functions that operate on user defined type
174
+ library ObjectTypeLib {
175
+
176
+ function zero() public pure returns (ObjectType) {
177
+ return ObjectType.wrap(0);
178
+ }
179
+
180
+ /// @dev Converts the uint256 into ObjectType.
181
+ function toObjectType(uint256 objectType) public pure returns (ObjectType) {
182
+ return ObjectType.wrap(uint8(objectType));
183
+ }
184
+
185
+ /// @dev Converts the NftId to a uint256.
186
+ function toInt(ObjectType objectType) public pure returns (uint96) {
187
+ return uint96(ObjectType.unwrap(objectType));
188
+ }
189
+
190
+ /// @dev Returns true if the value is non-zero (> 0).
191
+ function gtz(ObjectType a) public pure returns (bool) {
192
+ return ObjectType.unwrap(a) > 0;
193
+ }
194
+
195
+ /// @dev Returns true if the value is zero (== 0).
196
+ function eqz(ObjectType a) public pure returns (bool) {
197
+ return ObjectType.unwrap(a) == 0;
198
+ }
199
+
200
+ /// @dev Returns true if the values are equal (==).
201
+ function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
202
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
203
+ }
204
+
205
+ /// @dev Returns true if the values are not equal (!=).
206
+ function ne(ObjectType a, ObjectType b) public pure returns (bool isSame) {
207
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
208
+ }
209
+
210
+ /// @dev Returns the type/domain name for the provided object type
211
+ function toName(ObjectType objectType) public pure returns (string memory name) {
212
+ if (objectType == REGISTRY()) {
213
+ return "Registry";
214
+ } else if (objectType == STAKING()) {
215
+ return "Staking";
216
+ } else if (objectType == RELEASE()) {
217
+ return "Release";
218
+ } else if (objectType == INSTANCE()) {
219
+ return "Instance";
220
+ } else if (objectType == COMPONENT()) {
221
+ return "Component";
222
+ } else if (objectType == PRODUCT()) {
223
+ return "Product";
224
+ } else if (objectType == ORACLE()) {
225
+ return "Oracle";
226
+ } else if (objectType == DISTRIBUTION()) {
227
+ return "Distribution";
228
+ } else if (objectType == POOL()) {
229
+ return "Pool";
230
+ } else if (objectType == APPLICATION()) {
231
+ return "Application";
232
+ } else if (objectType == POLICY()) {
233
+ return "Policy";
234
+ } else if (objectType == CLAIM()) {
235
+ return "Claim";
236
+ } else if (objectType == PRICE()) {
237
+ return "Price";
238
+ } else if (objectType == BUNDLE()) {
239
+ return "Bundle";
240
+ } else if (objectType == RISK()) {
241
+ return "Risk";
242
+ } else if (objectType == ACCOUNTING()) {
243
+ return "Accounting";
244
+ }
245
+
246
+ // fallback: ObjectType<obect-type-int>
247
+ return string(
248
+ abi.encodePacked(
249
+ "ObjectType",
250
+ toString(
251
+ toInt(objectType))));
252
+ }
253
+
254
+ // TODO move to IService
255
+ function toVersionedName(
256
+ string memory name,
257
+ string memory suffix,
258
+ VersionPart release
259
+ )
260
+ external
261
+ pure
262
+ returns (string memory versionedName)
263
+ {
264
+ string memory versionName = "V0";
265
+
266
+ if (release.toInt() >= 10) {
267
+ versionName = "V";
268
+ }
269
+
270
+ versionedName = string(
271
+ abi.encodePacked(
272
+ name,
273
+ suffix,
274
+ versionName,
275
+ release.toString()));
276
+ }
277
+
278
+ /// @dev returns the provied int as a string
279
+ function toString(uint256 value) public pure returns (string memory name) {
280
+
281
+ if (value == 0) {
282
+ return "0";
283
+ }
284
+
285
+ uint256 temp = value;
286
+ uint256 digits = 0;
287
+ while (temp != 0) {
288
+ digits++;
289
+ temp /= 10;
290
+ }
291
+
292
+ bytes memory buffer = new bytes(digits);
293
+ uint256 index = digits - 1;
294
+
295
+ temp = value;
296
+ while (temp != 0) {
297
+ buffer[index] = bytes1(uint8(48 + temp % 10));
298
+ temp /= 10;
299
+
300
+ if (index > 0) {
301
+ index--;
302
+ }
303
+ }
304
+
305
+ return string(buffer);
306
+ }
307
+ }
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint40 allows for 65'535 claims with 16'777'216 payouts each per policy
5
+ type PayoutId is uint40;
6
+
7
+ import {ClaimId} from "./ClaimId.sol";
8
+ import {PAYOUT} from "./ObjectType.sol";
9
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
10
+ import {NftId} from "./NftId.sol";
11
+
12
+ // type bindings
13
+ using {
14
+ eqPayoutId as ==,
15
+ nePayoutId as !=,
16
+ PayoutIdLib.eqz,
17
+ PayoutIdLib.gtz,
18
+ PayoutIdLib.toInt,
19
+ PayoutIdLib.toClaimId,
20
+ PayoutIdLib.toPayoutNo,
21
+ PayoutIdLib.toKey32
22
+ } for PayoutId global;
23
+
24
+
25
+ // pure free functions for operators
26
+ function eqPayoutId(PayoutId a, PayoutId b) pure returns (bool isSame) {
27
+ return PayoutId.unwrap(a) == PayoutId.unwrap(b);
28
+ }
29
+
30
+ function nePayoutId(PayoutId a, PayoutId b) pure returns (bool isDifferent) {
31
+ return PayoutId.unwrap(a) != PayoutId.unwrap(b);
32
+ }
33
+
34
+ // library functions that operate on user defined type
35
+ library PayoutIdLib {
36
+ /// @dev Converts the PayoutId to a uint.
37
+ function zero() public pure returns (PayoutId) {
38
+ return PayoutId.wrap(0);
39
+ }
40
+
41
+ /// @dev Converts an uint into a PayoutId.
42
+ function toPayoutId(ClaimId claimId, uint24 payoutNo) public pure returns (PayoutId) {
43
+ return PayoutId.wrap((uint40(ClaimId.unwrap(claimId)) << 24) + payoutNo);
44
+ }
45
+
46
+ function toClaimId(PayoutId payoutId) public pure returns (ClaimId) {
47
+ return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 24));
48
+ }
49
+
50
+ function toPayoutNo(PayoutId payoutId) public pure returns (uint24) {
51
+ return uint24(PayoutId.unwrap(payoutId) & 16777215);
52
+ }
53
+
54
+ /// @dev Converts the PayoutId to a uint.
55
+ function toInt(PayoutId a) public pure returns (uint40) {
56
+ return PayoutId.unwrap(a);
57
+ }
58
+
59
+ /// @dev Returns true if the value is non-zero (> 0).
60
+ function gtz(PayoutId a) public pure returns (bool) {
61
+ return PayoutId.unwrap(a) > 0;
62
+ }
63
+
64
+ /// @dev Returns true if the value is zero (== 0).
65
+ function eqz(PayoutId a) public pure returns (bool) {
66
+ return PayoutId.unwrap(a) == 0;
67
+ }
68
+
69
+ /// @dev Converts the PayoutId and NftId to a Key32.
70
+ function toKey32(PayoutId payoutId, NftId policyNftId) public pure returns (Key32) {
71
+ return Key32Lib.toKey32(PAYOUT(), toKeyId(payoutId, policyNftId));
72
+ }
73
+
74
+ /// @dev Converts the PayoutId and NftId to a Key32.
75
+ function toKeyId(PayoutId payoutId, NftId policyNftId) public pure returns (KeyId) {
76
+ return KeyId.wrap(
77
+ bytes31(
78
+ bytes15(
79
+ uint120(
80
+ (NftId.unwrap(policyNftId) << 40) + PayoutId.unwrap(payoutId)))));
81
+ }
82
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {NftId} from "./NftId.sol";
@@ -12,6 +12,7 @@ type ReferralStatus is uint8;
12
12
  using {
13
13
  eqReferralId as ==,
14
14
  neReferralId as !=,
15
+ ReferralLib.eqz,
15
16
  ReferralLib.toKey32
16
17
  } for ReferralId global;
17
18
 
@@ -82,4 +83,8 @@ library ReferralLib {
82
83
  function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
83
84
  return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
84
85
  }
86
+
87
+ function eqz(ReferralId id) public pure returns (bool) {
88
+ return eqReferralId(id, zero());
89
+ }
85
90
  }
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {REQUEST} from "./ObjectType.sol";
6
+
7
+ type RequestId is uint64;
8
+
9
+ // type bindings
10
+ using {
11
+ eqRequestId as ==,
12
+ neRequestId as !=,
13
+ RequestIdLib.eqz,
14
+ RequestIdLib.gtz,
15
+ RequestIdLib.toInt,
16
+ RequestIdLib.toKey32
17
+ } for RequestId global;
18
+
19
+ // general pure free functions
20
+
21
+ function eqRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
22
+ return RequestIdLib.eq(a, b);
23
+ }
24
+
25
+ function neRequestId(RequestId a, RequestId b) pure returns (bool isSame) {
26
+ return RequestIdLib.ne(a, b);
27
+ }
28
+
29
+ library RequestIdLib {
30
+
31
+ // @dev zero element to refer to a non existing/initialized request
32
+ function zero() public pure returns (RequestId) {
33
+ return RequestId.wrap(0);
34
+ }
35
+
36
+ // @dev Converts an int id into a request id.
37
+ function toRequestId(uint256 id) public pure returns (RequestId) {
38
+ return RequestId.wrap(uint64(id));
39
+ }
40
+
41
+ // @dev Converts a request id back to an int value.
42
+ function toInt(RequestId requestId) public pure returns (uint256) {
43
+ return RequestId.unwrap(requestId);
44
+ }
45
+
46
+ // @dev Returns true iff request id a == 0
47
+ function eqz(RequestId a) public pure returns (bool) {
48
+ return RequestId.unwrap(a) == 0;
49
+ }
50
+
51
+ // @dev Returns true iff request id a > 0
52
+ function gtz(RequestId a) public pure returns (bool) {
53
+ return RequestId.unwrap(a) > 0;
54
+ }
55
+
56
+ // @dev Returns true iff risk ids a and b are identical
57
+ function eq(RequestId a, RequestId b) public pure returns (bool isSame) {
58
+ return RequestId.unwrap(a) == RequestId.unwrap(b);
59
+ }
60
+
61
+ // @dev Returns true iff risk ids a and b are different
62
+ function ne(RequestId a, RequestId b) public pure returns (bool isSame) {
63
+ return RequestId.unwrap(a) != RequestId.unwrap(b);
64
+ }
65
+
66
+ /// @dev Returns the key32 value for the specified nft id and object type.
67
+ function toKey32(RequestId id) public pure returns (Key32 key) {
68
+ return Key32Lib.toKey32(REQUEST(), toKeyId(id));
69
+ }
70
+
71
+ /// @dev Returns the key id value for the specified nft id
72
+ function toKeyId(RequestId id) public pure returns (KeyId keyId) {
73
+ return KeyId.wrap(bytes31(uint248(RequestId.unwrap(id))));
74
+ }
75
+ }