@etherisc/gif-next 0.0.2-d2fd9d7-008 → 0.0.2-d2ffc4d-802

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 (755) hide show
  1. package/README.md +104 -23
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1379 -0
  10. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1434 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +542 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +571 -523
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +350 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1322 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +589 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/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 +589 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  65. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  67. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +371 -1316
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +440 -166
  70. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  71. package/artifacts/contracts/instance/Instance.sol/Instance.json +415 -3079
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  73. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1916 -0
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +661 -0
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  77. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1551 -589
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +511 -456
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  81. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +351 -119
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3718 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  85. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  87. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  88. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  89. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  90. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  92. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  94. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  96. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  98. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  100. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  101. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  102. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  103. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  104. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  105. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  106. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  107. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +959 -0
  108. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  109. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +569 -0
  110. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  111. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  112. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  113. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → oracle/IOracleComponent.sol/IOracleComponent.json} +418 -372
  114. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  116. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  118. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  120. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  122. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  123. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  124. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +589 -0
  126. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  127. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  128. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  130. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +447 -327
  132. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  133. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  134. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  135. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  136. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  137. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  138. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  139. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
  140. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  142. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  144. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  145. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  146. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  148. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  149. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  150. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  151. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +589 -0
  152. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  154. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  156. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IApplicationService.sol/IApplicationService.json} +320 -169
  158. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  160. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  161. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  162. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  164. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  165. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  166. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IRiskService.sol/IRiskService.json} +172 -185
  168. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  169. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  170. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  171. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
  172. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  174. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  176. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  178. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  179. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  180. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  181. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  182. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  184. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  186. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +677 -112
  188. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +325 -229
  190. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  191. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  192. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  193. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  194. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  195. package/artifacts/contracts/registry/Registry.sol/Registry.json +1017 -150
  196. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  197. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1928 -0
  198. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  199. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +312 -336
  200. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +341 -123
  202. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
  204. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  206. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1333 -0
  208. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  210. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  211. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -101
  212. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  213. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  214. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  215. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1571 -0
  216. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
  218. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  219. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +165 -220
  220. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  226. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  228. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  229. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  230. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  231. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1203 -0
  232. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  234. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  235. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
  236. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  238. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  239. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
  240. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  242. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  243. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +143 -15
  244. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  245. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  246. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  247. package/artifacts/contracts/shared/IService.sol/IService.json +137 -159
  248. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  249. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  250. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  252. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  253. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  254. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  255. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  256. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  257. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  258. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  259. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +81 -30
  260. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  261. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  262. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  263. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +159 -55
  264. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  265. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  266. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  267. package/artifacts/contracts/shared/Service.sol/Service.json +156 -171
  268. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  269. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  272. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  274. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  275. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  276. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1096 -0
  278. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  279. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  280. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  281. package/artifacts/contracts/staking/Staking.sol/Staking.json +1849 -0
  282. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  283. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  284. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +788 -0
  286. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  288. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1301 -0
  290. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  292. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  294. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  295. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  296. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  297. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  298. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  300. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  302. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  304. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  306. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  308. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  310. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  312. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  314. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  316. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  318. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  320. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  322. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  324. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  326. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  328. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  330. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  334. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  336. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  338. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  340. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  342. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  344. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  346. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  347. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  348. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  350. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  352. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  354. package/contracts/accounting/AccountingService.sol +262 -0
  355. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  356. package/contracts/accounting/IAccountingService.sol +45 -0
  357. package/contracts/authorization/AccessAdmin.sol +689 -0
  358. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  359. package/contracts/authorization/Authorization.sol +337 -0
  360. package/contracts/authorization/IAccess.sol +49 -0
  361. package/contracts/authorization/IAccessAdmin.sol +143 -0
  362. package/contracts/authorization/IAuthorization.sol +74 -0
  363. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  364. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  365. package/contracts/distribution/BasicDistribution.sol +139 -0
  366. package/contracts/distribution/BasicDistributionAuthorization.sol +60 -0
  367. package/contracts/distribution/Distribution.sol +287 -0
  368. package/contracts/distribution/DistributionService.sol +357 -0
  369. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  370. package/contracts/distribution/IDistributionComponent.sol +52 -0
  371. package/contracts/distribution/IDistributionService.sol +100 -0
  372. package/contracts/examples/fire/DamageLevel.sol +59 -0
  373. package/contracts/examples/fire/FirePool.sol +90 -0
  374. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  375. package/contracts/examples/fire/FireProduct.sol +438 -0
  376. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  377. package/contracts/examples/fire/FireUSD.sol +26 -0
  378. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  379. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  380. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  381. package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
  382. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  383. package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
  384. package/contracts/instance/BundleSet.sol +130 -0
  385. package/contracts/instance/IInstance.sol +53 -39
  386. package/contracts/instance/IInstanceService.sol +59 -19
  387. package/contracts/instance/Instance.sol +172 -379
  388. package/contracts/instance/InstanceAdmin.sol +442 -0
  389. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  390. package/contracts/instance/InstanceReader.sol +391 -81
  391. package/contracts/instance/InstanceService.sol +353 -181
  392. package/contracts/instance/InstanceServiceManager.sol +14 -32
  393. package/contracts/instance/InstanceStore.sol +298 -0
  394. package/contracts/instance/RiskSet.sol +118 -0
  395. package/contracts/instance/base/BalanceStore.sol +123 -0
  396. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  397. package/contracts/instance/base/ObjectCounter.sol +20 -0
  398. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  399. package/contracts/instance/base/ObjectSet.sol +77 -0
  400. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  401. package/contracts/instance/module/IBundle.sol +8 -8
  402. package/contracts/instance/module/IComponents.sol +51 -0
  403. package/contracts/instance/module/IDistribution.sol +6 -4
  404. package/contracts/instance/module/IPolicy.sol +59 -19
  405. package/contracts/instance/module/IRisk.sol +4 -1
  406. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  407. package/contracts/oracle/BasicOracle.sol +47 -0
  408. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  409. package/contracts/oracle/IOracle.sol +36 -0
  410. package/contracts/oracle/IOracleComponent.sol +33 -0
  411. package/contracts/oracle/IOracleService.sol +66 -0
  412. package/contracts/oracle/Oracle.sol +156 -0
  413. package/contracts/oracle/OracleService.sol +310 -0
  414. package/contracts/oracle/OracleServiceManager.sol +39 -0
  415. package/contracts/pool/BasicPool.sol +175 -0
  416. package/contracts/pool/BasicPoolAuthorization.sol +76 -0
  417. package/contracts/pool/BundleService.sol +395 -0
  418. package/contracts/pool/BundleServiceManager.sol +39 -0
  419. package/contracts/pool/IBundleService.sol +115 -0
  420. package/contracts/pool/IPoolComponent.sol +62 -0
  421. package/contracts/pool/IPoolService.sol +165 -0
  422. package/contracts/pool/Pool.sol +345 -0
  423. package/contracts/pool/PoolLib.sol +216 -0
  424. package/contracts/pool/PoolService.sol +757 -0
  425. package/contracts/pool/PoolServiceManager.sol +39 -0
  426. package/contracts/product/ApplicationService.sol +259 -0
  427. package/contracts/product/ApplicationServiceManager.sol +38 -0
  428. package/contracts/product/BasicProduct.sol +51 -0
  429. package/contracts/product/BasicProductAuthorization.sol +56 -0
  430. package/contracts/product/ClaimService.sol +632 -0
  431. package/contracts/product/ClaimServiceManager.sol +38 -0
  432. package/contracts/product/IApplicationService.sol +66 -0
  433. package/contracts/product/IClaimService.sol +135 -0
  434. package/contracts/product/IPolicyService.sol +95 -0
  435. package/contracts/product/IPricingService.sol +39 -0
  436. package/contracts/product/IProductComponent.sol +62 -0
  437. package/contracts/product/IRiskService.sol +33 -0
  438. package/contracts/product/PolicyService.sol +707 -0
  439. package/contracts/product/PolicyServiceLib.sol +65 -0
  440. package/contracts/product/PolicyServiceManager.sol +39 -0
  441. package/contracts/product/PricingService.sol +304 -0
  442. package/contracts/product/PricingServiceManager.sol +39 -0
  443. package/contracts/product/Product.sol +478 -0
  444. package/contracts/product/RiskService.sol +145 -0
  445. package/contracts/product/RiskServiceManager.sol +39 -0
  446. package/contracts/registry/ChainNft.sol +82 -35
  447. package/contracts/registry/IRegistry.sol +122 -37
  448. package/contracts/registry/IRegistryService.sol +40 -28
  449. package/contracts/registry/IRelease.sol +26 -0
  450. package/contracts/registry/ITransferInterceptor.sol +1 -1
  451. package/contracts/registry/Registry.sol +555 -273
  452. package/contracts/registry/RegistryAdmin.sol +354 -0
  453. package/contracts/registry/RegistryService.sol +116 -233
  454. package/contracts/registry/RegistryServiceManager.sol +26 -53
  455. package/contracts/registry/ReleaseAdmin.sol +245 -0
  456. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  457. package/contracts/registry/ReleaseRegistry.sol +511 -0
  458. package/contracts/registry/ServiceAuthorizationV3.sol +247 -0
  459. package/contracts/registry/TokenRegistry.sol +261 -59
  460. package/contracts/shared/Component.sol +227 -0
  461. package/contracts/shared/ComponentService.sol +692 -0
  462. package/contracts/shared/ComponentServiceManager.sol +38 -0
  463. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  464. package/contracts/shared/ContractLib.sol +253 -0
  465. package/contracts/shared/IComponent.sol +61 -0
  466. package/contracts/shared/IComponentService.sol +112 -0
  467. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  468. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  469. package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
  470. package/contracts/shared/INftOwnable.sol +15 -12
  471. package/contracts/shared/IPolicyHolder.sol +35 -0
  472. package/contracts/shared/IRegisterable.sol +25 -5
  473. package/contracts/shared/IRegistryLinked.sol +11 -0
  474. package/contracts/shared/IService.sol +13 -5
  475. package/contracts/shared/InitializableERC165.sol +27 -0
  476. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  477. package/contracts/shared/KeyValueStore.sol +131 -0
  478. package/contracts/shared/Lifecycle.sol +88 -0
  479. package/contracts/shared/NftIdSet.sol +65 -0
  480. package/contracts/shared/NftOwnable.sol +75 -82
  481. package/contracts/shared/PolicyHolder.sol +62 -0
  482. package/contracts/shared/Registerable.sol +57 -38
  483. package/contracts/shared/RegistryLinked.sol +38 -0
  484. package/contracts/shared/Service.sol +43 -33
  485. package/contracts/shared/TokenHandler.sol +326 -12
  486. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  487. package/contracts/staking/IStaking.sol +165 -0
  488. package/contracts/staking/IStakingService.sol +165 -0
  489. package/contracts/staking/StakeManagerLib.sol +224 -0
  490. package/contracts/staking/Staking.sol +526 -0
  491. package/contracts/staking/StakingLifecycle.sol +23 -0
  492. package/contracts/staking/StakingManager.sol +52 -0
  493. package/contracts/staking/StakingReader.sol +190 -0
  494. package/contracts/staking/StakingService.sol +430 -0
  495. package/contracts/staking/StakingServiceManager.sol +45 -0
  496. package/contracts/staking/StakingStore.sol +605 -0
  497. package/contracts/staking/TargetManagerLib.sol +211 -0
  498. package/contracts/{types → type}/AddressSet.sol +1 -1
  499. package/contracts/type/Amount.sol +150 -0
  500. package/contracts/{types → type}/Blocknumber.sol +27 -3
  501. package/contracts/type/ClaimId.sol +80 -0
  502. package/contracts/{types → type}/DistributorType.sol +2 -2
  503. package/contracts/{types → type}/Fee.sol +33 -23
  504. package/contracts/{types → type}/Key32.sol +2 -2
  505. package/contracts/type/Key32Set.sol +62 -0
  506. package/contracts/{types → type}/NftId.sol +28 -15
  507. package/contracts/{types → type}/NftIdSet.sol +2 -2
  508. package/contracts/type/ObjectType.sol +303 -0
  509. package/contracts/type/PayoutId.sol +82 -0
  510. package/contracts/{types → type}/Referral.sol +6 -1
  511. package/contracts/type/RequestId.sol +75 -0
  512. package/contracts/type/RiskId.sol +74 -0
  513. package/contracts/type/RoleId.sol +182 -0
  514. package/contracts/type/Seconds.sol +101 -0
  515. package/contracts/type/Selector.sol +107 -0
  516. package/contracts/{types → type}/StateId.sol +48 -4
  517. package/contracts/type/String.sol +53 -0
  518. package/contracts/{types → type}/Timestamp.sol +33 -19
  519. package/contracts/{types → type}/UFixed.sol +41 -121
  520. package/contracts/{types → type}/Version.sol +20 -7
  521. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  522. package/contracts/upgradeability/ProxyManager.sol +232 -0
  523. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  524. package/contracts/upgradeability/Versionable.sol +59 -0
  525. package/package.json +11 -7
  526. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  527. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  528. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  529. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  530. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  531. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  532. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  533. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  534. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  535. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  536. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  537. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  538. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  539. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -813
  540. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  541. package/artifacts/contracts/components/Product.sol/Product.json +0 -729
  542. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  543. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  544. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  545. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  546. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  547. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  548. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  549. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  550. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  551. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  552. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  553. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  554. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  555. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  556. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  557. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  558. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  559. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  560. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  561. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  562. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  563. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  565. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  567. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  569. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  571. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  573. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  575. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  577. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  579. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  581. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  582. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
  583. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  584. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  585. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  586. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -775
  587. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  588. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  589. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  590. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  591. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  592. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
  593. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  595. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  596. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  597. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  598. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  600. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  601. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  602. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  603. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -211
  604. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  605. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  606. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  607. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  608. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  609. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  610. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  611. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  612. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  613. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  614. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  615. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  616. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  617. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1049
  618. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  619. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -464
  620. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  621. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  622. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  623. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  624. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  625. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  626. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  627. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  628. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  629. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  630. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  631. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  632. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  633. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  634. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  635. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  636. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  637. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  638. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  639. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  640. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  641. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  642. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  643. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  644. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  645. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  646. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  647. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  648. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  649. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  650. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  651. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  652. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  653. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  654. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  655. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  656. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  657. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  658. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  659. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  660. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  661. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  662. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  663. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  664. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  665. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  666. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  667. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  668. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  669. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  670. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  671. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  672. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  673. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  674. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  675. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  676. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  677. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  678. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  679. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  680. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  681. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  682. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  683. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  684. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  685. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  686. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  687. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  688. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  689. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  690. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  691. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  692. package/contracts/components/BaseComponent.sol +0 -91
  693. package/contracts/components/Distribution.sol +0 -163
  694. package/contracts/components/IBaseComponent.sol +0 -25
  695. package/contracts/components/IDistributionComponent.sol +0 -44
  696. package/contracts/components/IPoolComponent.sol +0 -66
  697. package/contracts/components/IProductComponent.sol +0 -35
  698. package/contracts/components/Pool.sol +0 -267
  699. package/contracts/components/Product.sol +0 -289
  700. package/contracts/experiment/cloning/Cloner.sol +0 -47
  701. package/contracts/experiment/errors/Require.sol +0 -38
  702. package/contracts/experiment/errors/Revert.sol +0 -44
  703. package/contracts/experiment/inheritance/A.sol +0 -53
  704. package/contracts/experiment/inheritance/B.sol +0 -28
  705. package/contracts/experiment/inheritance/C.sol +0 -34
  706. package/contracts/experiment/inheritance/IA.sol +0 -13
  707. package/contracts/experiment/inheritance/IB.sol +0 -10
  708. package/contracts/experiment/inheritance/IC.sol +0 -12
  709. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  710. package/contracts/experiment/statemachine/ISM.sol +0 -25
  711. package/contracts/experiment/statemachine/SM.sol +0 -57
  712. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  713. package/contracts/experiment/types/TypeA.sol +0 -47
  714. package/contracts/experiment/types/TypeB.sol +0 -29
  715. package/contracts/instance/AccessManagedSimple.sol +0 -115
  716. package/contracts/instance/AccessManagerSimple.sol +0 -692
  717. package/contracts/instance/BundleManager.sol +0 -129
  718. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  719. package/contracts/instance/InstanceAccessManager.sol +0 -288
  720. package/contracts/instance/ObjectManager.sol +0 -95
  721. package/contracts/instance/base/ComponentServiceBase.sol +0 -134
  722. package/contracts/instance/base/IInstanceBase.sol +0 -23
  723. package/contracts/instance/base/KeyValueStore.sol +0 -172
  724. package/contracts/instance/base/Lifecycle.sol +0 -100
  725. package/contracts/instance/module/IAccess.sol +0 -38
  726. package/contracts/instance/module/ISetup.sol +0 -46
  727. package/contracts/instance/module/ITreasury.sol +0 -23
  728. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  729. package/contracts/instance/service/DistributionService.sol +0 -88
  730. package/contracts/instance/service/DistributionServiceManager.sol +0 -54
  731. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  732. package/contracts/instance/service/IDistributionService.sol +0 -12
  733. package/contracts/instance/service/IPoolService.sol +0 -51
  734. package/contracts/instance/service/IProductService.sol +0 -110
  735. package/contracts/instance/service/PoolService.sol +0 -287
  736. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  737. package/contracts/instance/service/ProductService.sol +0 -570
  738. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  739. package/contracts/shared/ContractDeployerLib.sol +0 -72
  740. package/contracts/shared/ERC165.sol +0 -25
  741. package/contracts/shared/ProxyManager.sol +0 -94
  742. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  743. package/contracts/shared/Versionable.sol +0 -147
  744. package/contracts/test/TestFee.sol +0 -25
  745. package/contracts/test/TestRegisterable.sol +0 -18
  746. package/contracts/test/TestRoleId.sol +0 -14
  747. package/contracts/test/TestService.sol +0 -24
  748. package/contracts/test/TestToken.sol +0 -26
  749. package/contracts/test/TestVersion.sol +0 -44
  750. package/contracts/test/TestVersionable.sol +0 -17
  751. package/contracts/types/ChainId.sol +0 -38
  752. package/contracts/types/NumberId.sol +0 -52
  753. package/contracts/types/ObjectType.sol +0 -152
  754. package/contracts/types/RiskId.sol +0 -43
  755. package/contracts/types/RoleId.sol +0 -90
@@ -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,303 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type ObjectType is uint8;
5
+
6
+ // type bindings
7
+ using {
8
+ eqObjectType as ==,
9
+ neObjectType as !=,
10
+ ObjectTypeLib.toInt,
11
+ ObjectTypeLib.eqz,
12
+ ObjectTypeLib.eq,
13
+ ObjectTypeLib.gtz
14
+ } for ObjectType global;
15
+
16
+
17
+ //--- GIF object types/domains (rage: 1 - 99) -------------------------------//
18
+
19
+ function PROTOCOL() pure returns (ObjectType) {
20
+ return ObjectType.wrap(1);
21
+ }
22
+
23
+ function REGISTRY() pure returns (ObjectType) {
24
+ return ObjectType.wrap(2);
25
+ }
26
+
27
+ function STAKING() pure returns (ObjectType) {
28
+ return ObjectType.wrap(3);
29
+ }
30
+
31
+ function RELEASE() pure returns (ObjectType) {
32
+ return ObjectType.wrap(6);
33
+ }
34
+
35
+ function ROLE() pure returns (ObjectType) {
36
+ return ObjectType.wrap(7);
37
+ }
38
+
39
+ function SERVICE() pure returns (ObjectType) {
40
+ return ObjectType.wrap(8);
41
+ }
42
+
43
+ function INSTANCE() pure returns (ObjectType) {
44
+ return ObjectType.wrap(10);
45
+ }
46
+
47
+ /// @dev Generic component object type.
48
+ /// Component role id range is 11-19.
49
+ /// Stick to this range for new component object types.
50
+ function COMPONENT() pure returns (ObjectType) {
51
+ return ObjectType.wrap(11);
52
+ }
53
+
54
+ /// @dev Product object type.
55
+ /// IMPORTANT the actual value has an influence on the corresponding role id (RoleIdLib.sol).
56
+ /// Do not change this value without updating the corresponding role id calculation.
57
+ function PRODUCT() pure returns (ObjectType) {
58
+ return ObjectType.wrap(12);
59
+ }
60
+
61
+ function ORACLE() pure returns (ObjectType) {
62
+ return ObjectType.wrap(13);
63
+ }
64
+
65
+ function DISTRIBUTION() pure returns (ObjectType) {
66
+ return ObjectType.wrap(14);
67
+ }
68
+
69
+ function POOL() pure returns (ObjectType) {
70
+ return ObjectType.wrap(15);
71
+ }
72
+
73
+ /// @dev Application object type.
74
+ /// Range for NFT objects created thorugh components is 20-29.
75
+ function APPLICATION() pure returns (ObjectType) {
76
+ return ObjectType.wrap(20);
77
+ }
78
+
79
+ function POLICY() pure returns (ObjectType) {
80
+ return ObjectType.wrap(21);
81
+ }
82
+
83
+ function BUNDLE() pure returns (ObjectType) {
84
+ return ObjectType.wrap(22);
85
+ }
86
+
87
+ function DISTRIBUTOR() pure returns (ObjectType) {
88
+ return ObjectType.wrap(23);
89
+ }
90
+
91
+ /// @dev Stake object type.
92
+ /// NFT object type is 30
93
+ function STAKE() pure returns (ObjectType) {
94
+ return ObjectType.wrap(30);
95
+ }
96
+
97
+ /// @dev Staking target object type.
98
+ function TARGET() pure returns (ObjectType) {
99
+ return ObjectType.wrap(31);
100
+ }
101
+
102
+ /// @dev Accounting object type.
103
+ /// Range for non-NFT types created through components is 40+
104
+ function ACCOUNTING() pure returns (ObjectType) {
105
+ return ObjectType.wrap(40);
106
+ }
107
+
108
+ function FEE() pure returns (ObjectType) {
109
+ return ObjectType.wrap(41);
110
+ }
111
+
112
+ function PRICE() pure returns (ObjectType) {
113
+ return ObjectType.wrap(42);
114
+ }
115
+
116
+ function PREMIUM() pure returns (ObjectType) {
117
+ return ObjectType.wrap(43);
118
+ }
119
+
120
+ function RISK() pure returns (ObjectType) {
121
+ return ObjectType.wrap(44);
122
+ }
123
+
124
+ function CLAIM() pure returns (ObjectType) {
125
+ return ObjectType.wrap(45);
126
+ }
127
+
128
+ function PAYOUT() pure returns (ObjectType) {
129
+ return ObjectType.wrap(46);
130
+ }
131
+
132
+ function REQUEST() pure returns (ObjectType) {
133
+ return ObjectType.wrap(47);
134
+ }
135
+
136
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
137
+ return ObjectType.wrap(48);
138
+ }
139
+
140
+ function REFERRAL() pure returns (ObjectType) {
141
+ return ObjectType.wrap(49);
142
+ }
143
+
144
+
145
+
146
+ /// @dev Object type that includes any other object type.
147
+ /// Note that eq()/'==' does not take this property into account.
148
+ function ALL() pure returns (ObjectType) {
149
+ return ObjectType.wrap(99);
150
+ }
151
+
152
+ // other pure free functions for operators
153
+ function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
154
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
155
+ }
156
+
157
+ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
158
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
159
+ }
160
+
161
+ // library functions that operate on user defined type
162
+ library ObjectTypeLib {
163
+
164
+ error ErrorVersionTooBig(uint256 version);
165
+
166
+ function zero() public pure returns (ObjectType) {
167
+ return ObjectType.wrap(0);
168
+ }
169
+
170
+ /// @dev Converts the uint256 into ObjectType.
171
+ function toObjectType(uint256 objectType) public pure returns (ObjectType) {
172
+ return ObjectType.wrap(uint8(objectType));
173
+ }
174
+
175
+ /// @dev Converts the NftId to a uint256.
176
+ function toInt(ObjectType objectType) public pure returns (uint96) {
177
+ return uint96(ObjectType.unwrap(objectType));
178
+ }
179
+
180
+ /// @dev Returns true if the value is non-zero (> 0).
181
+ function gtz(ObjectType a) public pure returns (bool) {
182
+ return ObjectType.unwrap(a) > 0;
183
+ }
184
+
185
+ /// @dev Returns true if the value is zero (== 0).
186
+ function eqz(ObjectType a) public pure returns (bool) {
187
+ return ObjectType.unwrap(a) == 0;
188
+ }
189
+
190
+ /// @dev Returns true if the values are equal (==).
191
+ function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
192
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
193
+ }
194
+
195
+ /// @dev Returns true if the values are not equal (!=).
196
+ function ne(ObjectType a, ObjectType b) public pure returns (bool isSame) {
197
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
198
+ }
199
+
200
+ /// @dev Returns the type/domain name for the provided object type
201
+ function toName(ObjectType objectType) public pure returns (string memory name) {
202
+ if (objectType == REGISTRY()) {
203
+ return "Registry";
204
+ } else if (objectType == STAKING()) {
205
+ return "Staking";
206
+ } else if (objectType == INSTANCE()) {
207
+ return "Instance";
208
+ } else if (objectType == COMPONENT()) {
209
+ return "Component";
210
+ } else if (objectType == PRODUCT()) {
211
+ return "Product";
212
+ } else if (objectType == ORACLE()) {
213
+ return "Oracle";
214
+ } else if (objectType == DISTRIBUTION()) {
215
+ return "Distribution";
216
+ } else if (objectType == POOL()) {
217
+ return "Pool";
218
+ } else if (objectType == APPLICATION()) {
219
+ return "Application";
220
+ } else if (objectType == POLICY()) {
221
+ return "Policy";
222
+ } else if (objectType == CLAIM()) {
223
+ return "Claim";
224
+ } else if (objectType == PRICE()) {
225
+ return "Price";
226
+ } else if (objectType == BUNDLE()) {
227
+ return "Bundle";
228
+ } else if (objectType == RISK()) {
229
+ return "Risk";
230
+ } else if (objectType == ACCOUNTING()) {
231
+ return "Accounting";
232
+ }
233
+
234
+ // fallback: ObjectType<obect-type-int>
235
+ return string(
236
+ abi.encodePacked(
237
+ "ObjectType",
238
+ toString(
239
+ toInt(objectType))));
240
+ }
241
+
242
+ function toVersionedName(
243
+ string memory name,
244
+ string memory suffix,
245
+ uint256 version
246
+ )
247
+ external
248
+ pure
249
+ returns (string memory versionedName)
250
+ {
251
+ if (version > maxNumReleases()) {
252
+ revert ErrorVersionTooBig(version);
253
+ }
254
+
255
+ string memory versionName = "_v0";
256
+
257
+ if (version >= 10) {
258
+ versionName = "_v";
259
+ }
260
+
261
+ versionedName = string(
262
+ abi.encodePacked(
263
+ name,
264
+ suffix,
265
+ versionName,
266
+ toString(version)));
267
+ }
268
+
269
+ /// @dev returns the max number of releases (major versions) this gif setup can handle.
270
+ function maxNumReleases() public pure returns (uint8) {
271
+ return 99;
272
+ }
273
+
274
+ /// @dev returns the provied int as a string
275
+ function toString(uint256 value) public pure returns (string memory name) {
276
+
277
+ if (value == 0) {
278
+ return "0";
279
+ }
280
+
281
+ uint256 temp = value;
282
+ uint256 digits = 0;
283
+ while (temp != 0) {
284
+ digits++;
285
+ temp /= 10;
286
+ }
287
+
288
+ bytes memory buffer = new bytes(digits);
289
+ uint index = digits - 1;
290
+
291
+ temp = value;
292
+ while (temp != 0) {
293
+ buffer[index] = bytes1(uint8(48 + temp % 10));
294
+ temp /= 10;
295
+
296
+ if (index > 0) {
297
+ index--;
298
+ }
299
+ }
300
+
301
+ return string(buffer);
302
+ }
303
+ }
@@ -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
+ }
@@ -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
+ }