@etherisc/gif-next 0.0.2-eb1b869-461 → 0.0.2-eb4b6ab-521

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 (697) hide show
  1. package/README.md +405 -20
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1341 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/{registry/IRegistry.sol/IOwnable.json → authorization/AccessAdmin.sol/IAccessManagedChecker.json} +4 -4
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -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 +1092 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1016 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1501 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +860 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +915 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1008 -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 +1475 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -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 +299 -1057
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +759 -0
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -1243
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1800 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2339 -0
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1025 -0
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +744 -0
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  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/IAccess.sol/IAccess.dbg.json +4 -0
  101. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  102. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IBundle.sol/IBundle.json} +2 -2
  104. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  106. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  107. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  108. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  109. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  110. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  111. package/artifacts/contracts/instance/{treasury/ITreasury.sol/ITreasury.json → module/IRisk.sol/IRisk.json} +2 -2
  112. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  113. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  114. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  116. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
  118. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  120. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  122. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  124. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  126. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  128. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  130. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  132. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
  134. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  136. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  137. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +820 -0
  138. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +946 -0
  140. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  142. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  143. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1309 -0
  144. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  145. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  146. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1626 -0
  148. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +792 -0
  150. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  152. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  154. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  156. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
  158. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1538 -0
  160. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +860 -0
  162. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +597 -0
  164. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1082 -0
  166. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +968 -0
  168. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  170. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  172. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  173. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +453 -0
  174. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1320 -0
  176. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  178. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  180. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  182. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  183. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  184. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  186. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  188. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  189. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +295 -2
  190. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +1030 -27
  192. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1043 -0
  194. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  195. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  196. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  197. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +39 -0
  198. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  199. package/artifacts/contracts/registry/Registry.sol/Registry.json +1547 -119
  200. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  201. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  202. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1269 -0
  204. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
  206. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -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 +1325 -0
  212. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  214. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  215. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  216. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  217. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  218. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1597 -0
  220. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -0
  222. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +485 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/component/IComponent.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  228. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  229. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/ContractLib.sol/ITargetHelper.json} +4 -9
  230. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  232. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  234. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1221 -0
  236. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  238. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +510 -0
  240. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  241. package/artifacts/contracts/{instance/lifecycle → shared}/ILifecycle.sol/ILifecycle.json +65 -53
  242. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  243. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +57 -76
  244. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  245. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  246. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  247. package/artifacts/contracts/{instance/component/ComponentModule.sol/ComponentModule.json → shared/IRegisterable.sol/IRegisterable.json} +165 -135
  248. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  249. package/artifacts/contracts/{registry/IRegistry.sol → shared/IRegistryLinked.sol}/IRegistryLinked.json +5 -19
  250. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  251. package/artifacts/contracts/shared/IService.sol/IService.json +399 -0
  252. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  254. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  255. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  256. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  257. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  258. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  259. package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/Lifecycle.sol/Lifecycle.json} +50 -58
  260. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  261. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  262. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  263. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  264. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  265. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  266. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  267. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +378 -0
  268. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  269. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  270. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  271. package/artifacts/contracts/shared/Service.sol/Service.json +453 -0
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +822 -0
  274. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  276. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  278. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  280. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  281. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1067 -0
  282. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  284. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  285. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  286. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  288. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  290. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  292. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1272 -0
  294. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  296. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  298. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  299. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  300. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  301. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  302. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  304. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -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 +317 -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 +239 -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 +199 -0
  330. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  332. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -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 +132 -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 +548 -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 +113 -0
  350. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  352. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  354. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  356. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  358. package/contracts/accounting/AccountingService.sol +262 -0
  359. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  360. package/contracts/accounting/IAccountingService.sol +45 -0
  361. package/contracts/authorization/AccessAdmin.sol +659 -0
  362. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  363. package/contracts/authorization/Authorization.sol +289 -0
  364. package/contracts/authorization/IAccess.sol +49 -0
  365. package/contracts/authorization/IAccessAdmin.sol +140 -0
  366. package/contracts/authorization/IAuthorization.sol +60 -0
  367. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  368. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  369. package/contracts/distribution/BasicDistribution.sol +139 -0
  370. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  371. package/contracts/distribution/Distribution.sol +287 -0
  372. package/contracts/distribution/DistributionService.sol +357 -0
  373. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  374. package/contracts/distribution/IDistributionComponent.sol +52 -0
  375. package/contracts/distribution/IDistributionService.sol +100 -0
  376. package/contracts/examples/fire/DamageLevel.sol +59 -0
  377. package/contracts/examples/fire/FirePool.sol +90 -0
  378. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  379. package/contracts/examples/fire/FireProduct.sol +438 -0
  380. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  381. package/contracts/examples/fire/FireUSD.sol +26 -0
  382. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  383. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  384. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  385. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  386. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  387. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  388. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  389. package/contracts/instance/BundleSet.sol +130 -0
  390. package/contracts/instance/IInstance.sol +63 -22
  391. package/contracts/instance/IInstanceService.sol +72 -0
  392. package/contracts/instance/Instance.sol +218 -55
  393. package/contracts/instance/InstanceAdmin.sol +326 -0
  394. package/contracts/instance/InstanceAuthorizationV3.sol +225 -0
  395. package/contracts/instance/InstanceReader.sol +596 -0
  396. package/contracts/instance/InstanceService.sol +404 -0
  397. package/contracts/instance/InstanceServiceManager.sol +39 -0
  398. package/contracts/instance/InstanceStore.sol +298 -0
  399. package/contracts/instance/RiskSet.sol +118 -0
  400. package/contracts/instance/base/BalanceStore.sol +123 -0
  401. package/contracts/instance/base/Cloneable.sol +28 -0
  402. package/contracts/instance/base/ObjectCounter.sol +20 -0
  403. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  404. package/contracts/instance/base/ObjectSet.sol +77 -0
  405. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  406. package/contracts/instance/module/IAccess.sol +46 -0
  407. package/contracts/instance/module/IBundle.sol +20 -0
  408. package/contracts/instance/module/IComponents.sol +51 -0
  409. package/contracts/instance/module/IDistribution.sol +41 -0
  410. package/contracts/instance/module/IPolicy.sol +85 -0
  411. package/contracts/instance/module/IRisk.sol +14 -0
  412. package/contracts/mock/Dip.sol +2 -2
  413. package/contracts/oracle/BasicOracle.sol +47 -0
  414. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  415. package/contracts/oracle/IOracle.sol +36 -0
  416. package/contracts/oracle/IOracleComponent.sol +33 -0
  417. package/contracts/oracle/IOracleService.sol +66 -0
  418. package/contracts/oracle/Oracle.sol +156 -0
  419. package/contracts/oracle/OracleService.sol +310 -0
  420. package/contracts/oracle/OracleServiceManager.sol +39 -0
  421. package/contracts/pool/BasicPool.sol +175 -0
  422. package/contracts/pool/BasicPoolAuthorization.sol +68 -0
  423. package/contracts/pool/BundleService.sol +425 -0
  424. package/contracts/pool/BundleServiceManager.sol +39 -0
  425. package/contracts/pool/IBundleService.sol +121 -0
  426. package/contracts/pool/IPoolComponent.sol +62 -0
  427. package/contracts/pool/IPoolService.sol +153 -0
  428. package/contracts/pool/Pool.sol +345 -0
  429. package/contracts/pool/PoolService.sol +615 -0
  430. package/contracts/pool/PoolServiceManager.sol +39 -0
  431. package/contracts/product/ApplicationService.sol +259 -0
  432. package/contracts/product/ApplicationServiceManager.sol +38 -0
  433. package/contracts/product/BasicProduct.sol +51 -0
  434. package/contracts/product/BasicProductAuthorization.sol +41 -0
  435. package/contracts/product/ClaimService.sol +708 -0
  436. package/contracts/product/ClaimServiceManager.sol +38 -0
  437. package/contracts/product/IApplicationService.sol +66 -0
  438. package/contracts/product/IClaimService.sol +136 -0
  439. package/contracts/product/IPolicyService.sol +90 -0
  440. package/contracts/product/IPricingService.sol +39 -0
  441. package/contracts/product/IProductComponent.sol +62 -0
  442. package/contracts/product/IRiskService.sol +33 -0
  443. package/contracts/product/PolicyService.sol +736 -0
  444. package/contracts/product/PolicyServiceManager.sol +39 -0
  445. package/contracts/product/PricingService.sol +304 -0
  446. package/contracts/product/PricingServiceManager.sol +39 -0
  447. package/contracts/product/Product.sol +463 -0
  448. package/contracts/product/RiskService.sol +151 -0
  449. package/contracts/product/RiskServiceManager.sol +39 -0
  450. package/contracts/registry/ChainNft.sol +175 -61
  451. package/contracts/registry/IRegistry.sol +142 -45
  452. package/contracts/registry/IRegistryService.sol +62 -0
  453. package/contracts/registry/IRelease.sol +26 -0
  454. package/contracts/registry/ITransferInterceptor.sol +6 -0
  455. package/contracts/registry/Registry.sol +677 -133
  456. package/contracts/registry/RegistryAdmin.sol +344 -0
  457. package/contracts/registry/RegistryService.sol +241 -0
  458. package/contracts/registry/RegistryServiceManager.sol +53 -0
  459. package/contracts/registry/ReleaseAdmin.sol +245 -0
  460. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  461. package/contracts/registry/ReleaseRegistry.sol +511 -0
  462. package/contracts/registry/ServiceAuthorizationV3.sol +242 -0
  463. package/contracts/registry/TokenRegistry.sol +313 -0
  464. package/contracts/shared/Component.sol +226 -0
  465. package/contracts/shared/ComponentService.sol +700 -0
  466. package/contracts/shared/ComponentServiceManager.sol +38 -0
  467. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  468. package/contracts/shared/ContractLib.sol +252 -0
  469. package/contracts/shared/IComponent.sol +61 -0
  470. package/contracts/shared/IComponentService.sol +116 -0
  471. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  472. package/contracts/shared/IKeyValueStore.sol +54 -0
  473. package/contracts/shared/ILifecycle.sol +31 -0
  474. package/contracts/shared/INftOwnable.sol +25 -0
  475. package/contracts/shared/IPolicyHolder.sol +35 -0
  476. package/contracts/shared/IRegisterable.sol +37 -0
  477. package/contracts/shared/IRegistryLinked.sol +11 -0
  478. package/contracts/shared/IService.sol +23 -0
  479. package/contracts/shared/InitializableERC165.sol +27 -0
  480. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  481. package/contracts/shared/KeyValueStore.sol +131 -0
  482. package/contracts/shared/Lifecycle.sol +88 -0
  483. package/contracts/shared/NftIdSet.sol +65 -0
  484. package/contracts/shared/NftOwnable.sol +127 -0
  485. package/contracts/shared/PolicyHolder.sol +62 -0
  486. package/contracts/shared/Registerable.sol +109 -0
  487. package/contracts/shared/RegistryLinked.sol +38 -0
  488. package/contracts/shared/Service.sol +65 -0
  489. package/contracts/shared/TokenHandler.sol +389 -0
  490. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  491. package/contracts/staking/IStaking.sol +173 -0
  492. package/contracts/staking/IStakingService.sol +157 -0
  493. package/contracts/staking/StakeManagerLib.sol +224 -0
  494. package/contracts/staking/Staking.sol +526 -0
  495. package/contracts/staking/StakingLifecycle.sol +23 -0
  496. package/contracts/staking/StakingManager.sol +52 -0
  497. package/contracts/staking/StakingReader.sol +190 -0
  498. package/contracts/staking/StakingService.sol +439 -0
  499. package/contracts/staking/StakingServiceManager.sol +44 -0
  500. package/contracts/staking/StakingStore.sol +605 -0
  501. package/contracts/staking/TargetManagerLib.sol +211 -0
  502. package/contracts/type/AddressSet.sol +58 -0
  503. package/contracts/type/Amount.sol +150 -0
  504. package/contracts/{types → type}/Blocknumber.sol +27 -3
  505. package/contracts/type/ClaimId.sol +80 -0
  506. package/contracts/type/DistributorType.sol +55 -0
  507. package/contracts/type/Fee.sol +66 -0
  508. package/contracts/type/Key32.sol +50 -0
  509. package/contracts/type/Key32Set.sol +62 -0
  510. package/contracts/type/NftId.sol +85 -0
  511. package/contracts/type/NftIdSet.sol +62 -0
  512. package/contracts/type/ObjectType.sol +290 -0
  513. package/contracts/type/PayoutId.sol +82 -0
  514. package/contracts/type/Referral.sol +90 -0
  515. package/contracts/type/RequestId.sol +75 -0
  516. package/contracts/type/RiskId.sol +74 -0
  517. package/contracts/type/RoleId.sol +165 -0
  518. package/contracts/type/Seconds.sol +101 -0
  519. package/contracts/type/Selector.sol +102 -0
  520. package/contracts/{types → type}/StateId.sol +64 -6
  521. package/contracts/type/String.sol +53 -0
  522. package/contracts/{types → type}/Timestamp.sol +51 -12
  523. package/contracts/{types → type}/UFixed.sol +58 -23
  524. package/contracts/type/Version.sol +120 -0
  525. package/contracts/upgradeability/IVersionable.sol +53 -0
  526. package/contracts/upgradeability/ProxyManager.sol +232 -0
  527. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
  528. package/contracts/upgradeability/Versionable.sol +59 -0
  529. package/package.json +17 -7
  530. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  531. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  532. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  533. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  534. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  535. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  536. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  538. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  539. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  540. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  541. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  542. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  543. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  544. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  545. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  546. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  548. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  550. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  552. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  554. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  556. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  558. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  560. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  562. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  564. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  565. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  566. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  567. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  568. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  569. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  570. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  571. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  572. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  573. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  574. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  575. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  576. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  577. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  578. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  579. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  580. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  581. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  582. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  583. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  584. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  585. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  586. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  587. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  588. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  589. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  590. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  591. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  592. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  593. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  594. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  595. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  596. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  597. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  598. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  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 -254
  602. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  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 -129
  607. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  608. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  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 -127
  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 -196
  617. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  618. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  619. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  620. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  621. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  622. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  623. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  624. package/artifacts/contracts/mock/Dip.sol/DIP.dbg.json +0 -4
  625. package/artifacts/contracts/mock/Dip.sol/DIP.json +0 -338
  626. package/artifacts/contracts/mock/TestPool.sol/TestPool.dbg.json +0 -4
  627. package/artifacts/contracts/mock/TestPool.sol/TestPool.json +0 -294
  628. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.dbg.json +0 -4
  629. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.json +0 -384
  630. package/artifacts/contracts/mock/Usdc.sol/USDC.dbg.json +0 -4
  631. package/artifacts/contracts/mock/Usdc.sol/USDC.json +0 -338
  632. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  633. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  634. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  635. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  636. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  637. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  638. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  639. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  640. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  641. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  643. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  645. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  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/StateId.sol/StateIdLib.dbg.json +0 -4
  650. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  651. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  652. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  653. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  654. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  655. package/contracts/components/Component.sol +0 -77
  656. package/contracts/components/IPool.sol +0 -15
  657. package/contracts/components/IProduct.sol +0 -16
  658. package/contracts/components/Pool.sol +0 -52
  659. package/contracts/components/Product.sol +0 -89
  660. package/contracts/experiment/errors/Require.sol +0 -38
  661. package/contracts/experiment/errors/Revert.sol +0 -44
  662. package/contracts/experiment/inheritance/A.sol +0 -53
  663. package/contracts/experiment/inheritance/B.sol +0 -28
  664. package/contracts/experiment/inheritance/C.sol +0 -34
  665. package/contracts/experiment/inheritance/IA.sol +0 -13
  666. package/contracts/experiment/inheritance/IB.sol +0 -10
  667. package/contracts/experiment/inheritance/IC.sol +0 -12
  668. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  669. package/contracts/experiment/statemachine/ISM.sol +0 -25
  670. package/contracts/experiment/statemachine/README.md +0 -112
  671. package/contracts/experiment/statemachine/SM.sol +0 -57
  672. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  673. package/contracts/experiment/types/TypeA.sol +0 -47
  674. package/contracts/experiment/types/TypeB.sol +0 -29
  675. package/contracts/instance/access/Access.sol +0 -165
  676. package/contracts/instance/access/IAccess.sol +0 -63
  677. package/contracts/instance/component/ComponentModule.sol +0 -274
  678. package/contracts/instance/component/IComponent.sol +0 -74
  679. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  680. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  681. package/contracts/instance/policy/IPolicy.sol +0 -50
  682. package/contracts/instance/policy/PolicyModule.sol +0 -114
  683. package/contracts/instance/pool/IPoolModule.sol +0 -23
  684. package/contracts/instance/pool/PoolModule.sol +0 -81
  685. package/contracts/instance/product/IProductService.sol +0 -36
  686. package/contracts/instance/product/ProductService.sol +0 -136
  687. package/contracts/instance/treasury/ITreasury.sol +0 -91
  688. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  689. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  690. package/contracts/mock/TestPool.sol +0 -16
  691. package/contracts/mock/TestProduct.sol +0 -39
  692. package/contracts/mock/Usdc.sol +0 -26
  693. package/contracts/registry/IChainNft.sol +0 -21
  694. package/contracts/types/ChainId.sol +0 -38
  695. package/contracts/types/Fee.sol +0 -32
  696. package/contracts/types/NftId.sol +0 -51
  697. package/contracts/types/ObjectType.sol +0 -107
@@ -0,0 +1,90 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {NftId} from "./NftId.sol";
6
+ import {REFERRAL} from "./ObjectType.sol";
7
+
8
+ type ReferralId is bytes8;
9
+ type ReferralStatus is uint8;
10
+
11
+ // type bindings
12
+ using {
13
+ eqReferralId as ==,
14
+ neReferralId as !=,
15
+ ReferralLib.eqz,
16
+ ReferralLib.toKey32
17
+ } for ReferralId global;
18
+
19
+ using {
20
+ eqReferralStatus as ==,
21
+ neReferralStatus as !=
22
+ } for ReferralStatus global;
23
+
24
+ // general pure free functions
25
+
26
+ // @dev Returns true iff a and b are identical
27
+ function eqReferralId(ReferralId a, ReferralId b) pure returns (bool isSame) {
28
+ return ReferralId.unwrap(a) == ReferralId.unwrap(b);
29
+ }
30
+
31
+ // @dev Returns true iff a and b are different
32
+ function neReferralId(ReferralId a, ReferralId b) pure returns (bool isDifferent) {
33
+ return ReferralId.unwrap(a) != ReferralId.unwrap(b);
34
+ }
35
+
36
+ // @dev Returns true iff a and b are identical
37
+ function eqReferralStatus(ReferralStatus a, ReferralStatus b) pure returns (bool isSame) {
38
+ return ReferralStatus.unwrap(a) == ReferralStatus.unwrap(b);
39
+ }
40
+
41
+ // @dev Returns true iff a and b are different
42
+ function neReferralStatus(ReferralStatus a, ReferralStatus b) pure returns (bool isDifferent) {
43
+ return ReferralStatus.unwrap(a) != ReferralStatus.unwrap(b);
44
+ }
45
+
46
+ function REFERRAL_OK() pure returns (ReferralStatus) {
47
+ return ReferralStatus.wrap(10);
48
+ }
49
+
50
+ function REFERRAL_ERROR_UNKNOWN() pure returns (ReferralStatus) {
51
+ return ReferralStatus.wrap(100);
52
+ }
53
+
54
+ function REFERRAL_ERROR_EXPIRED() pure returns (ReferralStatus) {
55
+ return ReferralStatus.wrap(110);
56
+ }
57
+
58
+ function REFERRAL_ERROR_EXHAUSTED() pure returns (ReferralStatus) {
59
+ return ReferralStatus.wrap(120);
60
+ }
61
+
62
+ library ReferralLib {
63
+
64
+ function zero() public pure returns (ReferralId) {
65
+ return ReferralId.wrap(bytes8(0));
66
+ }
67
+
68
+ // @dev Converts a referral string into an id.
69
+ function toReferralId(NftId distributionNftId, string memory referral) public pure returns (ReferralId) {
70
+ return ReferralId.wrap(bytes8(keccak256(abi.encode(distributionNftId, referral))));
71
+ }
72
+
73
+ function toReferralStatus(uint8 status) public pure returns (ReferralStatus) {
74
+ return ReferralStatus.wrap(status);
75
+ }
76
+
77
+ /// @dev Returns the key32 value for the specified nft id and object type.
78
+ function toKey32(ReferralId id) public pure returns (Key32 key) {
79
+ return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
80
+ }
81
+
82
+ /// @dev Returns the key id value for the specified nft id
83
+ function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
84
+ return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
85
+ }
86
+
87
+ function eqz(ReferralId id) public pure returns (bool) {
88
+ return eqReferralId(id, zero());
89
+ }
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
+ }
@@ -0,0 +1,74 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {RISK} from "./ObjectType.sol";
6
+
7
+ type RiskId is bytes8;
8
+
9
+ // type bindings
10
+ using {
11
+ eqRiskId as ==,
12
+ neRiskId as !=,
13
+ RiskIdLib.eq,
14
+ RiskIdLib.eqz,
15
+ RiskIdLib.gtz,
16
+ RiskIdLib.toInt,
17
+ RiskIdLib.toKeyId,
18
+ RiskIdLib.toKey32
19
+ } for RiskId global;
20
+
21
+ // general pure free functions
22
+
23
+ // @dev Returns true iff risk ids a and b are identical
24
+ function eqRiskId(RiskId a, RiskId b) pure returns (bool isSame) {
25
+ return RiskId.unwrap(a) == RiskId.unwrap(b);
26
+ }
27
+
28
+ // @dev Returns true iff risk ids a and b are different
29
+ function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
30
+ return RiskId.unwrap(a) != RiskId.unwrap(b);
31
+ }
32
+
33
+ library RiskIdLib {
34
+ function zero() public pure returns (RiskId) {
35
+ return RiskId.wrap(bytes8(0));
36
+ }
37
+
38
+ // @dev Converts a risk id into a uint256.
39
+ function toInt(RiskId riskId) public pure returns (uint256) {
40
+ return uint64(RiskId.unwrap(riskId));
41
+ }
42
+
43
+ // @dev Converts a risk id string into a risk id.
44
+ function toRiskId(string memory risk) public pure returns (RiskId) {
45
+ return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
46
+ }
47
+
48
+ /// @dev Returns the key32 value for the specified risk id.
49
+ function toKey32(RiskId riskId) public pure returns (Key32 key) {
50
+ return Key32Lib.toKey32(RISK(), toKeyId(riskId));
51
+ }
52
+
53
+ /// @dev Returns the key id value for the specified nft id
54
+ function toKeyId(RiskId id) public pure returns (KeyId keyId) {
55
+ return KeyId.wrap(bytes31(RiskId.unwrap(id)));
56
+ }
57
+
58
+ function toRiskId(KeyId keyId) public pure returns (RiskId riskId) {
59
+ riskId = RiskId.wrap(bytes8(KeyId.unwrap(keyId)));
60
+ assert(toInt(riskId) < 2**64);
61
+ }
62
+
63
+ function eq(RiskId a, RiskId b) public pure returns (bool isSame) {
64
+ return eqRiskId(a, b);
65
+ }
66
+
67
+ function eqz(RiskId a) public pure returns (bool isZero) {
68
+ return eqRiskId(a, zero());
69
+ }
70
+
71
+ function gtz(RiskId a) public pure returns (bool isZero) {
72
+ return uint64(RiskId.unwrap(a)) > 0;
73
+ }
74
+ }
@@ -0,0 +1,165 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {ObjectType, ROLE} from "./ObjectType.sol";
6
+ import {VersionPart} from "./Version.sol";
7
+
8
+ type RoleId is uint64;
9
+
10
+ // type bindings
11
+ using {
12
+ eqRoleId as ==,
13
+ neRoleId as !=,
14
+ RoleIdLib.eqz,
15
+ RoleIdLib.gtz,
16
+ RoleIdLib.toInt
17
+ // RoleIdLib.toKey32
18
+ } for RoleId global;
19
+
20
+ // general pure free functions
21
+
22
+ // @dev Returns true iff role ids a and b are identical
23
+ function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
24
+ return RoleId.unwrap(a) == RoleId.unwrap(b);
25
+ }
26
+
27
+ // @dev Returns true iff role ids a and b are different
28
+ function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
29
+ return RoleId.unwrap(a) != RoleId.unwrap(b);
30
+ }
31
+
32
+ //--- OpenZeppelin provided roles -------------------------------------------//
33
+
34
+ /// @dev Role ID needs to match with oz AccessManager.ADMIN_ROLE
35
+ function ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).min); }
36
+
37
+ /// @dev Role ID needs to match with oz AccessManager.PUBLIC_ROLE
38
+ function PUBLIC_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).max); }
39
+
40
+ //--- GIF roles (range: 1-99) ----------------------------------------------//
41
+
42
+ /// @dev cental role for gif release management.
43
+ /// this role is necessary to call ReleaseManager.createNextRelease/activateNextRelease
44
+ /// the actual deployment of a release requires the GIF_MANAGER_ROLE.
45
+ /// GIF_ADMIN_ROLE is the admin of the GIF_MANAGER_ROLE.
46
+ /// only a single holder may hold this role at any time
47
+ function GIF_ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1); }
48
+
49
+ /// @dev role for token whith/blacklisting, deploying and registering the services for a new major release
50
+ /// registering services for a new major release is only possible after a new initial release has been created by the GIF_ADMIN_ROLE
51
+ /// token white/blacklisting is possible for any active release
52
+ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
53
+
54
+ /// @dev role for registering remote staking targets and reporting remote total value locked amounts.
55
+ function GIF_REMOTE_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
56
+
57
+ /// @dev role assigned to release registry, release specfic to lock/unlock a release
58
+ function RELEASE_REGISTRY_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
59
+
60
+ //--- GIF core contract roles (range: 200 - 9'900) --------------------------//
61
+ // created and assigned during initial deployment for registry and staking
62
+ // granting for instances and components in instance service
63
+ // object type * 100 + 0, examples:
64
+ // - registry contract role: 200
65
+ // - staking contract role: 300
66
+ // - instance contract role: 1000
67
+
68
+ //--- GIF service roles (range 201 - 9'9xx) ---------------------------------//
69
+ // created and assigned by release manager contract
70
+ // object type * 100 + 1/major version, examples:
71
+ // - registry service role (any version): 299
72
+ // - registry service role (version 3): 203
73
+ // - registry service role (any version): 399
74
+ // - staking service role: (version 3): 303
75
+ // - application service role (version 3): 2003
76
+
77
+ //--- GIF component contract roles (range 12'001 - 19'099) ------------------//
78
+ // assigned at component registration time
79
+ // object type * 1000 + instane specific component counter
80
+ // on any instance a maximum number of 999 components may be deployed
81
+ // examples:
82
+ // - 1st pool on instance: 15001
83
+ // - 1st distribution on instance: 14002
84
+ // - 1st product on instance: 12003
85
+ // - 2nd pool on instance: 15004
86
+ // - 2nd distribution on instance: 14005
87
+ // - 2nd product on instance: 12006
88
+
89
+
90
+ //--- Custom roles (range >= 1'000'000) -------------------------------------//
91
+
92
+ function CUSTOM_ROLE_MIN() pure returns (RoleId) { return RoleIdLib.toRoleId(1000000); }
93
+
94
+ library RoleIdLib {
95
+
96
+ uint64 public constant ALL_VERSIONS = 99;
97
+ uint64 public constant SERVICE_DOMAIN_ROLE_FACTOR = 100;
98
+ uint64 public constant COMPONENT_ROLE_FACTOR = 100;
99
+ uint64 public constant CUSTOM_ROLE_MIN_INT = 1000000;
100
+
101
+ /// @dev Converts the RoleId to a uint.
102
+ function zero() public pure returns (RoleId) {
103
+ return RoleId.wrap(0);
104
+ }
105
+
106
+ /// @dev Converts an uint into a role id.
107
+ function toRoleId(uint64 a) public pure returns (RoleId) {
108
+ return RoleId.wrap(a);
109
+ }
110
+
111
+ /// @dev Converts an uint into a component role id.
112
+ function toComponentRoleId(ObjectType objectType, uint64 index) public pure returns (RoleId) {
113
+ return toRoleId(COMPONENT_ROLE_FACTOR * uint64(objectType.toInt()) + index);
114
+ }
115
+
116
+ /// @dev Converts an uint into a custom role id.
117
+ function toCustomRoleId(uint64 index) public pure returns (RoleId) {
118
+ return toRoleId(CUSTOM_ROLE_MIN_INT + index);
119
+ }
120
+
121
+ /// @dev Converts the role id to a uint.
122
+ function toInt(RoleId a) public pure returns (uint64) {
123
+ return uint64(RoleId.unwrap(a));
124
+ }
125
+
126
+ /// @dev Converts an uint into a role id.
127
+ /// Used for GIF core contracts.
128
+ function roleForType(ObjectType objectType) public pure returns (RoleId) {
129
+ return RoleId.wrap(SERVICE_DOMAIN_ROLE_FACTOR * uint64(objectType.toInt()));
130
+ }
131
+
132
+ /// @dev Converts an uint into a RoleId.
133
+ /// Used for GIF core contracts.
134
+ function roleForTypeAndVersion(ObjectType objectType, VersionPart majorVersion) public pure returns (RoleId) {
135
+ return RoleId.wrap(
136
+ uint64(SERVICE_DOMAIN_ROLE_FACTOR * objectType.toInt() + majorVersion.toInt()));
137
+ }
138
+
139
+ /// @dev Converts an uint into a RoleId.
140
+ /// Used for GIF core contracts.
141
+ function roleForTypeAndAllVersions(ObjectType objectType) public pure returns (RoleId) {
142
+ return RoleId.wrap(
143
+ uint64(SERVICE_DOMAIN_ROLE_FACTOR * objectType.toInt() + ALL_VERSIONS));
144
+ }
145
+
146
+ /// @dev Returns true if the value is non-zero (> 0).
147
+ function gtz(RoleId a) public pure returns (bool) {
148
+ return RoleId.unwrap(a) > 0;
149
+ }
150
+
151
+ /// @dev Returns true if the value is zero (== 0).
152
+ function eqz(RoleId a) public pure returns (bool) {
153
+ return RoleId.unwrap(a) == 0;
154
+ }
155
+
156
+ /// @dev Returns the key32 value for the specified id and object type.
157
+ function toKey32(RoleId a) public pure returns (Key32 key) {
158
+ return Key32Lib.toKey32(ROLE(), toKeyId(a));
159
+ }
160
+
161
+ /// @dev Returns the key id value for the specified id
162
+ function toKeyId(RoleId a) public pure returns (KeyId keyId) {
163
+ return KeyId.wrap(bytes31(uint248(RoleId.unwrap(a))));
164
+ }
165
+ }
@@ -0,0 +1,101 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Seconds is uint40;
5
+
6
+ using {
7
+ SecondsEq as ==,
8
+ SecondsGt as >,
9
+ SecondsAdd as +,
10
+ SecondsLib.eqz,
11
+ SecondsLib.gtz,
12
+ SecondsLib.eq,
13
+ SecondsLib.gt,
14
+ SecondsLib.lt,
15
+ SecondsLib.toInt,
16
+ SecondsLib.add
17
+ } for Seconds global;
18
+
19
+ function SecondsEq(Seconds duration1, Seconds duration2) pure returns (bool) {
20
+ return SecondsLib.eq(duration1, duration2);
21
+ }
22
+
23
+ function SecondsGt(Seconds duration1, Seconds duration2) pure returns (bool) {
24
+ return SecondsLib.gt(duration1, duration2);
25
+ }
26
+
27
+ function SecondsAdd(Seconds duration1, Seconds duration2) pure returns (Seconds) {
28
+ return SecondsLib.add(duration1, duration2);
29
+ }
30
+
31
+
32
+ library SecondsLib {
33
+
34
+ error ErrorSecondsLibDurationTooBig(uint256 duration);
35
+
36
+ function zero() public pure returns (Seconds) {
37
+ return Seconds.wrap(0);
38
+ }
39
+
40
+ function max() public pure returns (Seconds) {
41
+ return Seconds.wrap(_max());
42
+ }
43
+
44
+ function oneDay() public pure returns (Seconds duration) {
45
+ return Seconds.wrap(24 * 3600);
46
+ }
47
+
48
+ function oneYear() public pure returns (Seconds duration) {
49
+ return Seconds.wrap(365 * 24 * 3600);
50
+ }
51
+
52
+ /// @dev converts the uint duration into Seconds
53
+ /// function reverts if duration is exceeding max Seconds value
54
+ function toSeconds(uint256 duration) public pure returns (Seconds) {
55
+ // if(duration > type(uint40).max) {
56
+ if(duration > _max()) {
57
+ revert ErrorSecondsLibDurationTooBig(duration);
58
+ }
59
+
60
+ return Seconds.wrap(uint40(duration));
61
+ }
62
+
63
+ /// @dev return true if duration equals 0
64
+ function eqz(Seconds duration) public pure returns (bool) {
65
+ return Seconds.unwrap(duration) == 0;
66
+ }
67
+
68
+ /// @dev return true if duration is larger than 0
69
+ function gtz(Seconds duration) public pure returns (bool) {
70
+ return Seconds.unwrap(duration) > 0;
71
+ }
72
+
73
+ /// @dev return true iff duration1 and duration2 are the same
74
+ function eq(Seconds duration1, Seconds duration2) public pure returns (bool) {
75
+ return Seconds.unwrap(duration1) == Seconds.unwrap(duration2);
76
+ }
77
+
78
+ /// @dev return true if duration1 is larger than duration2
79
+ function gt(Seconds duration1, Seconds duration2) public pure returns (bool) {
80
+ return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
81
+ }
82
+
83
+ /// @dev return true if duration1 is smaller than duration2
84
+ function lt(Seconds duration1, Seconds duration2) public pure returns (bool) {
85
+ return Seconds.unwrap(duration1) < Seconds.unwrap(duration2);
86
+ }
87
+
88
+ /// @dev return add duration1 and duration2
89
+ function add(Seconds duration1, Seconds duration2) public pure returns (Seconds) {
90
+ return Seconds.wrap(Seconds.unwrap(duration1) + Seconds.unwrap(duration2));
91
+ }
92
+
93
+ function toInt(Seconds duration) public pure returns (uint256) {
94
+ return uint256(uint40(Seconds.unwrap(duration)));
95
+ }
96
+
97
+ function _max() internal pure returns (uint40) {
98
+ // IMPORTANT: type nees to match with actual definition for Seconds
99
+ return type(uint40).max;
100
+ }
101
+ }
@@ -0,0 +1,102 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Selector is bytes4;
5
+
6
+ // type bindings
7
+ using {
8
+ eqSelector as ==,
9
+ neSelector as !=,
10
+ SelectorLib.toBytes4,
11
+ SelectorLib.eqz
12
+ } for Selector global;
13
+
14
+ // pure free functions for operators
15
+ function eqSelector(Selector s1, Selector s2) pure returns (bool isSame) {
16
+ return SelectorLib.eq(s1, s2);
17
+ }
18
+
19
+ function neSelector(Selector s1, Selector s2) pure returns (bool isDifferent) {
20
+ return SelectorLib.ne(s1, s2);
21
+ }
22
+
23
+ // library functions that operate on user defined type
24
+ library SelectorLib {
25
+
26
+ function zero() public pure returns (Selector) {
27
+ return Selector.wrap("");
28
+ }
29
+
30
+ function eqz(Selector s) public pure returns (bool) {
31
+ return Selector.unwrap(s) == "";
32
+ }
33
+
34
+ function eq(Selector s1, Selector s2) public pure returns (bool isSame) {
35
+ return Selector.unwrap(s1) == Selector.unwrap(s2);
36
+ }
37
+
38
+ function ne(Selector s1, Selector s2) public pure returns (bool isDifferent) {
39
+ return Selector.unwrap(s1) != Selector.unwrap(s2);
40
+ }
41
+
42
+ function toSelector(bytes4 selector) public pure returns (Selector) {
43
+ return Selector.wrap(selector);
44
+ }
45
+
46
+ function toBytes4(Selector s) public pure returns (bytes4) {
47
+ return Selector.unwrap(s);
48
+ }
49
+ }
50
+
51
+ // selector specific set library
52
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
53
+ library SelectorSetLib {
54
+
55
+ struct Set {
56
+ Selector[] selectors;
57
+ mapping(Selector selector => uint256 index) at;
58
+ }
59
+
60
+ function add(Set storage set, Selector selector) external {
61
+ // selector already in set
62
+ if (set.at[selector] > 0) { return; }
63
+
64
+ set.selectors.push(selector);
65
+ set.at[selector] = set.selectors.length;
66
+ }
67
+
68
+ function remove(Set storage set, Selector selector) external {
69
+ uint256 selectorIndex = set.at[selector];
70
+
71
+ // selector not in set
72
+ if (selectorIndex == 0) {return; }
73
+
74
+ uint256 toDeleteIndex = selectorIndex - 1;
75
+ uint256 lastIndex = set.selectors.length - 1;
76
+
77
+ if (lastIndex != toDeleteIndex) {
78
+ Selector lastSelector = set.selectors[lastIndex];
79
+ set.selectors[toDeleteIndex] = lastSelector;
80
+ set.at[lastSelector] = selectorIndex; // Replace lastValue's index to valueIndex
81
+ }
82
+
83
+ set.selectors.pop();
84
+ delete set.at[selector];
85
+ }
86
+
87
+ function isEmpty(Set storage set) external view returns(bool empty) {
88
+ return set.selectors.length == 0;
89
+ }
90
+
91
+ function contains(Set storage set, Selector selector) external view returns(bool inSet) {
92
+ return set.at[selector] > 0;
93
+ }
94
+
95
+ function size(Set storage set) external view returns(uint256 length) {
96
+ return set.selectors.length;
97
+ }
98
+
99
+ function at(Set storage set, uint256 index) external view returns(Selector selector) {
100
+ return set.selectors[index];
101
+ }
102
+ }