@etherisc/gif-next 0.0.2-8d47fa1-080 → 0.0.2-8d69bcd-543

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 (800) hide show
  1. package/README.md +252 -21
  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/{shared/IOwnable.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 +508 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/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 +324 -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 +1338 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +527 -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 +1487 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +555 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2048 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +527 -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 +1495 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +527 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1211 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1663 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +555 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2416 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +527 -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 +364 -1783
  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 +441 -2076
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1862 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +631 -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/IBundle.sol/IBundle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  107. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  110. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  111. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +975 -0
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +535 -0
  116. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  118. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +774 -0
  120. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  122. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +875 -0
  124. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  126. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  128. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1252 -0
  130. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +555 -0
  132. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1367 -0
  134. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +820 -0
  136. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +946 -0
  138. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +907 -0
  140. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1309 -0
  142. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.json +1027 -0
  144. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1626 -0
  146. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +792 -0
  148. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  149. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +813 -0
  150. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +728 -0
  152. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  153. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1161 -0
  154. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +527 -0
  156. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  157. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1538 -0
  158. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +860 -0
  160. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  161. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +262 -339
  162. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  163. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1082 -0
  164. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +968 -0
  166. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +602 -0
  168. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  169. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1018 -0
  170. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  171. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → product/IRiskService.sol/IRiskService.json} +218 -158
  172. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  173. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1336 -0
  174. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +816 -0
  176. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  177. package/artifacts/contracts/product/PricingService.sol/PricingService.json +930 -0
  178. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +784 -0
  180. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  181. package/artifacts/contracts/product/Product.sol/Product.json +1119 -0
  182. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  183. package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
  184. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  185. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
  186. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  187. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +103 -2
  188. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +810 -171
  190. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  191. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +561 -186
  192. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  193. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  194. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  195. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  196. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  197. package/artifacts/contracts/registry/Registry.sol/Registry.json +1016 -148
  198. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  200. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  201. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +625 -217
  202. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
  204. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  205. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
  206. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  207. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  208. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  209. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1325 -0
  210. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
  212. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  213. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  214. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  215. package/artifacts/contracts/shared/Component.sol/Component.json +707 -0
  216. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  217. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1597 -0
  218. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +824 -0
  220. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +255 -150
  222. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
  224. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  225. package/artifacts/contracts/{instance/IInstanceLinked.sol/IInstanceLinked.json → shared/ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  226. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  227. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  228. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  230. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  231. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +632 -0
  232. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  233. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1221 -0
  234. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  235. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +709 -0
  236. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  237. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  238. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  240. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  241. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +82 -52
  242. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  243. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  244. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +213 -8
  246. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  247. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  248. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  249. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +189 -179
  250. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  251. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  252. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  253. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +797 -0
  254. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  255. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  256. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  257. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  258. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  259. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  260. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  261. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  262. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  263. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  264. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  265. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +226 -8
  266. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  267. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  268. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  269. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +196 -199
  270. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  271. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +724 -0
  272. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  273. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
  274. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  275. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +140 -0
  276. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  277. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1447 -0
  278. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  279. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1067 -0
  280. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  281. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  282. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/Staking.sol/Staking.json +1857 -0
  284. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  285. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  286. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  287. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
  288. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
  290. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1272 -0
  292. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +732 -0
  294. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
  296. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  297. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  298. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  299. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  300. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  302. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  304. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  306. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  308. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  310. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  311. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  312. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  313. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  314. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  316. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  317. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  318. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  320. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  322. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  323. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  324. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  326. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +199 -0
  328. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +433 -0
  330. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  332. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  334. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  336. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  338. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  340. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  342. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -0
  344. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  346. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +113 -0
  348. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  349. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  350. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  351. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  352. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  353. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  354. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  356. package/contracts/accounting/AccountingService.sol +262 -0
  357. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  358. package/contracts/accounting/IAccountingService.sol +45 -0
  359. package/contracts/authorization/AccessAdmin.sol +656 -0
  360. package/contracts/authorization/AccessManagerCloneable.sol +149 -0
  361. package/contracts/authorization/Authorization.sol +316 -0
  362. package/contracts/authorization/IAccess.sol +49 -0
  363. package/contracts/authorization/IAccessAdmin.sol +140 -0
  364. package/contracts/authorization/IAuthorization.sol +66 -0
  365. package/contracts/authorization/IServiceAuthorization.sol +40 -0
  366. package/contracts/authorization/ServiceAuthorization.sol +106 -0
  367. package/contracts/distribution/BasicDistribution.sol +139 -0
  368. package/contracts/distribution/BasicDistributionAuthorization.sol +39 -0
  369. package/contracts/distribution/Distribution.sol +287 -0
  370. package/contracts/distribution/DistributionService.sol +357 -0
  371. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  372. package/contracts/distribution/IDistributionComponent.sol +52 -0
  373. package/contracts/distribution/IDistributionService.sol +100 -0
  374. package/contracts/examples/fire/DamageLevel.sol +59 -0
  375. package/contracts/examples/fire/FirePool.sol +90 -0
  376. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  377. package/contracts/examples/fire/FireProduct.sol +438 -0
  378. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  379. package/contracts/examples/fire/FireUSD.sol +26 -0
  380. package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
  381. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  382. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  383. package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
  384. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  385. package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
  386. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  387. package/contracts/instance/BundleSet.sol +130 -0
  388. package/contracts/instance/IInstance.sol +63 -47
  389. package/contracts/instance/IInstanceService.sol +72 -0
  390. package/contracts/instance/Instance.sol +233 -71
  391. package/contracts/instance/InstanceAdmin.sol +436 -0
  392. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  393. package/contracts/instance/InstanceReader.sol +596 -0
  394. package/contracts/instance/InstanceService.sol +404 -0
  395. package/contracts/instance/InstanceServiceManager.sol +39 -0
  396. package/contracts/instance/InstanceStore.sol +298 -0
  397. package/contracts/instance/RiskSet.sol +118 -0
  398. package/contracts/instance/base/BalanceStore.sol +123 -0
  399. package/contracts/instance/base/Cloneable.sol +28 -0
  400. package/contracts/instance/base/ObjectCounter.sol +20 -0
  401. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  402. package/contracts/instance/base/ObjectSet.sol +77 -0
  403. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  404. package/contracts/instance/module/IBundle.sol +20 -0
  405. package/contracts/instance/module/IComponents.sol +51 -0
  406. package/contracts/instance/module/IDistribution.sol +41 -0
  407. package/contracts/instance/module/IPolicy.sol +85 -0
  408. package/contracts/instance/module/IRisk.sol +14 -0
  409. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  410. package/contracts/oracle/BasicOracle.sol +47 -0
  411. package/contracts/oracle/BasicOracleAuthorization.sol +37 -0
  412. package/contracts/oracle/IOracle.sol +36 -0
  413. package/contracts/oracle/IOracleComponent.sol +33 -0
  414. package/contracts/oracle/IOracleService.sol +66 -0
  415. package/contracts/oracle/Oracle.sol +156 -0
  416. package/contracts/oracle/OracleService.sol +310 -0
  417. package/contracts/oracle/OracleServiceManager.sol +39 -0
  418. package/contracts/pool/BasicPool.sol +175 -0
  419. package/contracts/pool/BasicPoolAuthorization.sol +59 -0
  420. package/contracts/pool/BundleService.sol +425 -0
  421. package/contracts/pool/BundleServiceManager.sol +39 -0
  422. package/contracts/pool/IBundleService.sol +121 -0
  423. package/contracts/pool/IPoolComponent.sol +62 -0
  424. package/contracts/pool/IPoolService.sol +153 -0
  425. package/contracts/pool/Pool.sol +345 -0
  426. package/contracts/pool/PoolService.sol +613 -0
  427. package/contracts/pool/PoolServiceManager.sol +39 -0
  428. package/contracts/product/ApplicationService.sol +259 -0
  429. package/contracts/product/ApplicationServiceManager.sol +38 -0
  430. package/contracts/product/BasicProduct.sol +51 -0
  431. package/contracts/product/BasicProductAuthorization.sol +32 -0
  432. package/contracts/product/ClaimService.sol +708 -0
  433. package/contracts/product/ClaimServiceManager.sol +38 -0
  434. package/contracts/product/IApplicationService.sol +66 -0
  435. package/contracts/product/IClaimService.sol +136 -0
  436. package/contracts/product/IPolicyService.sol +90 -0
  437. package/contracts/product/IPricingService.sol +39 -0
  438. package/contracts/product/IProductComponent.sol +62 -0
  439. package/contracts/product/IRiskService.sol +33 -0
  440. package/contracts/product/PolicyService.sol +718 -0
  441. package/contracts/product/PolicyServiceManager.sol +39 -0
  442. package/contracts/product/PricingService.sol +304 -0
  443. package/contracts/product/PricingServiceManager.sol +39 -0
  444. package/contracts/product/Product.sol +463 -0
  445. package/contracts/product/RiskService.sol +145 -0
  446. package/contracts/product/RiskServiceManager.sol +39 -0
  447. package/contracts/registry/ChainNft.sol +99 -37
  448. package/contracts/registry/IRegistry.sol +131 -40
  449. package/contracts/registry/IRegistryService.sol +49 -16
  450. package/contracts/registry/IRelease.sol +26 -0
  451. package/contracts/registry/ITransferInterceptor.sol +1 -1
  452. package/contracts/registry/Registry.sol +569 -344
  453. package/contracts/registry/RegistryAdmin.sol +344 -0
  454. package/contracts/registry/RegistryService.sol +147 -289
  455. package/contracts/registry/RegistryServiceManager.sol +53 -0
  456. package/contracts/registry/ReleaseAdmin.sol +245 -0
  457. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  458. package/contracts/registry/ReleaseRegistry.sol +511 -0
  459. package/contracts/registry/ServiceAuthorizationV3.sol +242 -0
  460. package/contracts/registry/TokenRegistry.sol +313 -0
  461. package/contracts/shared/Component.sol +241 -0
  462. package/contracts/shared/ComponentService.sol +692 -0
  463. package/contracts/shared/ComponentServiceManager.sol +38 -0
  464. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  465. package/contracts/shared/ContractLib.sol +253 -0
  466. package/contracts/shared/IComponent.sol +61 -0
  467. package/contracts/shared/IComponentService.sol +116 -0
  468. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  469. package/contracts/shared/IKeyValueStore.sol +54 -0
  470. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  471. package/contracts/shared/INftOwnable.sol +25 -0
  472. package/contracts/shared/IPolicyHolder.sol +35 -0
  473. package/contracts/shared/IRegisterable.sol +24 -9
  474. package/contracts/shared/IRegistryLinked.sol +11 -0
  475. package/contracts/shared/IService.sol +23 -0
  476. package/contracts/shared/InitializableERC165.sol +27 -0
  477. package/contracts/shared/InstanceLinkedComponent.sol +197 -0
  478. package/contracts/shared/KeyValueStore.sol +131 -0
  479. package/contracts/shared/Lifecycle.sol +88 -0
  480. package/contracts/shared/NftIdSet.sol +65 -0
  481. package/contracts/shared/NftOwnable.sol +127 -0
  482. package/contracts/shared/PolicyHolder.sol +62 -0
  483. package/contracts/shared/Registerable.sol +54 -62
  484. package/contracts/shared/RegistryLinked.sol +38 -0
  485. package/contracts/shared/Service.sol +65 -0
  486. package/contracts/shared/TokenHandler.sol +312 -0
  487. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  488. package/contracts/staking/IStaking.sol +165 -0
  489. package/contracts/staking/IStakingService.sol +157 -0
  490. package/contracts/staking/StakeManagerLib.sol +224 -0
  491. package/contracts/staking/Staking.sol +526 -0
  492. package/contracts/staking/StakingLifecycle.sol +23 -0
  493. package/contracts/staking/StakingManager.sol +52 -0
  494. package/contracts/staking/StakingReader.sol +190 -0
  495. package/contracts/staking/StakingService.sol +408 -0
  496. package/contracts/staking/StakingServiceManager.sol +45 -0
  497. package/contracts/staking/StakingStore.sol +605 -0
  498. package/contracts/staking/TargetManagerLib.sol +211 -0
  499. package/contracts/{types → type}/AddressSet.sol +1 -1
  500. package/contracts/type/Amount.sol +150 -0
  501. package/contracts/{types → type}/Blocknumber.sol +27 -3
  502. package/contracts/type/ClaimId.sol +80 -0
  503. package/contracts/type/DistributorType.sol +55 -0
  504. package/contracts/type/Fee.sol +66 -0
  505. package/contracts/{types → type}/Key32.sol +10 -5
  506. package/contracts/type/Key32Set.sol +62 -0
  507. package/contracts/{types → type}/NftId.sol +28 -15
  508. package/contracts/type/NftIdSet.sol +62 -0
  509. package/contracts/type/ObjectType.sol +303 -0
  510. package/contracts/type/PayoutId.sol +82 -0
  511. package/contracts/type/Referral.sol +90 -0
  512. package/contracts/type/RequestId.sol +75 -0
  513. package/contracts/type/RiskId.sol +74 -0
  514. package/contracts/type/RoleId.sol +182 -0
  515. package/contracts/type/Seconds.sol +101 -0
  516. package/contracts/type/Selector.sol +102 -0
  517. package/contracts/{types → type}/StateId.sol +53 -5
  518. package/contracts/type/String.sol +53 -0
  519. package/contracts/{types → type}/Timestamp.sol +37 -19
  520. package/contracts/{types → type}/UFixed.sol +48 -12
  521. package/contracts/{types → type}/Version.sol +22 -6
  522. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  523. package/contracts/upgradeability/ProxyManager.sol +232 -0
  524. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  525. package/contracts/upgradeability/Versionable.sol +59 -0
  526. package/package.json +12 -7
  527. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  528. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  529. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  530. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  531. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  532. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  533. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  534. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
  535. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  536. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
  537. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
  539. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  540. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  541. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  542. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  543. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  544. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  545. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  546. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  547. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  548. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  549. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  550. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  551. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  552. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  553. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  555. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  557. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  559. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  561. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  563. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  565. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  567. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  569. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  571. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  573. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  575. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  577. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  578. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  579. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  580. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  581. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  582. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  583. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  584. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -344
  585. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  586. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  587. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  588. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  589. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  590. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  591. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  592. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  593. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  594. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  595. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  596. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  597. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  598. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  599. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  600. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  601. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  602. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  604. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  605. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  606. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  607. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  608. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  609. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  610. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  611. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  612. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  613. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  614. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  615. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  616. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  617. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  618. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  619. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  620. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  621. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  622. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  623. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  624. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  625. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  626. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  627. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  628. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  629. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  630. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  631. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  632. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  633. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  634. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  635. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  636. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  637. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  638. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  639. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  640. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  641. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  642. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  643. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  644. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -484
  645. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  646. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  647. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  648. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  649. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  650. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  651. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  652. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  653. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
  654. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
  655. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  656. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  657. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  658. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  659. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  660. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  661. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -310
  662. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  663. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  664. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  665. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  666. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  667. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  668. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  669. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  670. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  671. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  672. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  673. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  674. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  675. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  676. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  677. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  678. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  679. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  680. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  681. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  682. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  683. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  684. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  685. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  686. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  687. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  688. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  689. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  690. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  691. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  692. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  693. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  694. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  695. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  696. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  697. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  698. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  699. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  700. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  701. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  702. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  703. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  704. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  705. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  706. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  707. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  708. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  709. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  710. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  711. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  712. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  713. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  714. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  715. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  716. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  717. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  718. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  719. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  720. package/contracts/components/BaseComponent.sol +0 -79
  721. package/contracts/components/Distribution.sol +0 -155
  722. package/contracts/components/IBaseComponent.sol +0 -19
  723. package/contracts/components/IDistributionComponent.sol +0 -47
  724. package/contracts/components/IPoolComponent.sol +0 -65
  725. package/contracts/components/IProductComponent.sol +0 -39
  726. package/contracts/components/Pool.sol +0 -246
  727. package/contracts/components/Product.sol +0 -299
  728. package/contracts/experiment/errors/Require.sol +0 -38
  729. package/contracts/experiment/errors/Revert.sol +0 -44
  730. package/contracts/experiment/inheritance/A.sol +0 -53
  731. package/contracts/experiment/inheritance/B.sol +0 -28
  732. package/contracts/experiment/inheritance/C.sol +0 -34
  733. package/contracts/experiment/inheritance/IA.sol +0 -13
  734. package/contracts/experiment/inheritance/IB.sol +0 -10
  735. package/contracts/experiment/inheritance/IC.sol +0 -12
  736. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  737. package/contracts/experiment/statemachine/ISM.sol +0 -25
  738. package/contracts/experiment/statemachine/SM.sol +0 -57
  739. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  740. package/contracts/experiment/types/TypeA.sol +0 -47
  741. package/contracts/experiment/types/TypeB.sol +0 -29
  742. package/contracts/instance/IInstanceLinked.sol +0 -8
  743. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  744. package/contracts/instance/base/IInstanceBase.sol +0 -23
  745. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  746. package/contracts/instance/base/IService.sol +0 -15
  747. package/contracts/instance/base/InstanceBase.sol +0 -89
  748. package/contracts/instance/base/KeyValueStore.sol +0 -161
  749. package/contracts/instance/base/Lifecycle.sol +0 -100
  750. package/contracts/instance/base/ModuleBase.sol +0 -57
  751. package/contracts/instance/base/ServiceBase.sol +0 -43
  752. package/contracts/instance/module/access/Access.sol +0 -149
  753. package/contracts/instance/module/access/IAccess.sol +0 -53
  754. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  755. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  756. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  757. package/contracts/instance/module/component/IComponent.sol +0 -28
  758. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  759. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  760. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  761. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  762. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  763. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  764. package/contracts/instance/module/risk/IRisk.sol +0 -26
  765. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  766. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  767. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  768. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  769. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  770. package/contracts/instance/service/DistributionService.sol +0 -54
  771. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  772. package/contracts/instance/service/IDistributionService.sol +0 -12
  773. package/contracts/instance/service/IPoolService.sol +0 -37
  774. package/contracts/instance/service/IProductService.sol +0 -107
  775. package/contracts/instance/service/PoolService.sol +0 -149
  776. package/contracts/instance/service/ProductService.sol +0 -509
  777. package/contracts/registry/IChainNft.sol +0 -22
  778. package/contracts/registry/IRegistryLinked.sol +0 -8
  779. package/contracts/registry/RegistryInstaller.sol +0 -100
  780. package/contracts/shared/ERC165.sol +0 -21
  781. package/contracts/shared/IOwnable.sol +0 -6
  782. package/contracts/shared/ProxyManager.sol +0 -115
  783. package/contracts/shared/Versionable.sol +0 -147
  784. package/contracts/test/TestDistribution.sol +0 -22
  785. package/contracts/test/TestFee.sol +0 -25
  786. package/contracts/test/TestPool.sol +0 -27
  787. package/contracts/test/TestProduct.sol +0 -74
  788. package/contracts/test/TestRegisterable.sol +0 -18
  789. package/contracts/test/TestRoleId.sol +0 -14
  790. package/contracts/test/TestService.sol +0 -26
  791. package/contracts/test/TestVersion.sol +0 -44
  792. package/contracts/test/TestVersionable.sol +0 -17
  793. package/contracts/test/Usdc.sol +0 -26
  794. package/contracts/types/ChainId.sol +0 -38
  795. package/contracts/types/Fee.sol +0 -56
  796. package/contracts/types/NftIdSet.sol +0 -60
  797. package/contracts/types/ObjectType.sol +0 -131
  798. package/contracts/types/ReferralId.sol +0 -48
  799. package/contracts/types/RiskId.sol +0 -43
  800. package/contracts/types/RoleId.sol +0 -38
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32} from "../type/Key32.sol";
5
+
6
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
+ library LibKey32Set {
8
+
9
+ struct Set {
10
+ Key32[] keys;
11
+ mapping(Key32 key => uint256 index) at;
12
+ }
13
+
14
+ error ErrorKey32SetAlreadyAdded(Key32 key);
15
+ error ErrorKey32SetNotInSet(Key32 key);
16
+
17
+
18
+ function add(Set storage set, Key32 key) external {
19
+ if (set.at[key] > 0) {
20
+ revert ErrorKey32SetAlreadyAdded(key);
21
+ }
22
+
23
+ set.keys.push(key);
24
+ set.at[key] = set.keys.length;
25
+ }
26
+
27
+ function remove(Set storage set, Key32 key) external {
28
+ uint256 nftIdIndex = set.at[key];
29
+
30
+ if (nftIdIndex == 0) {
31
+ revert ErrorKey32SetNotInSet(key);
32
+ }
33
+
34
+ uint256 toDeleteIndex = nftIdIndex - 1;
35
+ uint256 lastIndex = set.keys.length - 1;
36
+
37
+ if (lastIndex != toDeleteIndex) {
38
+ Key32 lastId = set.keys[lastIndex];
39
+ set.keys[toDeleteIndex] = lastId;
40
+ set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
41
+ }
42
+
43
+ set.keys.pop();
44
+ delete set.at[key];
45
+ }
46
+
47
+ function isEmpty(Set storage set) external view returns(bool empty) {
48
+ return set.keys.length == 0;
49
+ }
50
+
51
+ function contains(Set storage set, Key32 key) external view returns(bool inSet) {
52
+ return set.at[key] > 0;
53
+ }
54
+
55
+ function size(Set storage set) external view returns(uint256 length) {
56
+ return set.keys.length;
57
+ }
58
+
59
+ function getElementAt(Set storage set, uint256 index) external view returns(Key32 key) {
60
+ return set.keys[index];
61
+ }
62
+ }
@@ -1,5 +1,5 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {ObjectType} from "./ObjectType.sol";
@@ -14,32 +14,34 @@ using {
14
14
  NftIdLib.toInt,
15
15
  NftIdLib.gtz,
16
16
  NftIdLib.eqz,
17
+ NftIdLib.eq,
17
18
  NftIdLib.toKeyId,
18
19
  NftIdLib.toKey32
19
20
  } for NftId global;
20
21
 
21
- // general pure free functions
22
- /// @dev Converts the uint256 to a NftId.
23
- function toNftId(uint256 id) pure returns (NftId) {
24
- return NftId.wrap(uint96(id));
25
- }
26
-
27
- /// @dev Return the NftId zero (0)
28
- function zeroNftId() pure returns (NftId) {
29
- return NftId.wrap(0);
30
- }
31
-
32
22
  // pure free functions for operators
33
23
  function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
34
- return NftId.unwrap(a) == NftId.unwrap(b);
24
+ return NftIdLib.eq(a, b);
35
25
  }
36
26
 
37
27
  function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
38
- return NftId.unwrap(a) != NftId.unwrap(b);
28
+ return NftIdLib.ne(a, b);
39
29
  }
40
30
 
41
31
  // library functions that operate on user defined type
42
32
  library NftIdLib {
33
+
34
+ /// @dev the zero nft id
35
+ /// is never a valid nft id and implies a non-initialized value
36
+ function zero() public pure returns (NftId) {
37
+ return NftId.wrap(0);
38
+ }
39
+
40
+ /// @dev Converts the uint256 to a NftId.
41
+ function toNftId(uint256 id) public pure returns (NftId) {
42
+ return NftId.wrap(uint96(id));
43
+ }
44
+
43
45
  /// @dev Converts the NftId to a uint256.
44
46
  function toInt(NftId nftId) public pure returns (uint96) {
45
47
  return uint96(NftId.unwrap(nftId));
@@ -57,7 +59,12 @@ library NftIdLib {
57
59
 
58
60
  /// @dev Returns true if the values are equal (==).
59
61
  function eq(NftId a, NftId b) public pure returns (bool isSame) {
60
- return eqNftId(a, b);
62
+ return NftId.unwrap(a) == NftId.unwrap(b);
63
+ }
64
+
65
+ /// @dev Returns true if the values are not equal (!=).
66
+ function ne(NftId a, NftId b) public pure returns (bool isSame) {
67
+ return NftId.unwrap(a) != NftId.unwrap(b);
61
68
  }
62
69
 
63
70
  /// @dev Returns the key32 value for the specified nft id and object type.
@@ -69,4 +76,10 @@ library NftIdLib {
69
76
  function toKeyId(NftId id) public pure returns (KeyId keyId) {
70
77
  return KeyId.wrap(bytes31(uint248(NftId.unwrap(id))));
71
78
  }
79
+
80
+ function toNftId(KeyId keyId) public pure returns (NftId nftId) {
81
+ uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
82
+ assert(keyIdInt < type(uint96).max);
83
+ return NftId.wrap(uint96(keyIdInt));
84
+ }
72
85
  }
@@ -0,0 +1,62 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {NftId} from "../type/NftId.sol";
5
+
6
+ // based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
7
+ library LibNftIdSet {
8
+
9
+ struct Set {
10
+ NftId[] ids;
11
+ mapping(NftId nftid => uint256 index) at;
12
+ }
13
+
14
+ error ErrorNftIdSetAlreadyAdded(NftId nftId);
15
+ error ErrorNftIdSetNotInSet(NftId nftId);
16
+
17
+
18
+ function add(Set storage set, NftId nftId) external {
19
+ if (set.at[nftId] > 0) {
20
+ revert ErrorNftIdSetAlreadyAdded(nftId);
21
+ }
22
+
23
+ set.ids.push(nftId);
24
+ set.at[nftId] = set.ids.length;
25
+ }
26
+
27
+ function remove(Set storage set, NftId nftId) external {
28
+ uint256 nftIdIndex = set.at[nftId];
29
+
30
+ if (nftIdIndex == 0) {
31
+ revert ErrorNftIdSetNotInSet(nftId);
32
+ }
33
+
34
+ uint256 toDeleteIndex = nftIdIndex - 1;
35
+ uint256 lastIndex = set.ids.length - 1;
36
+
37
+ if (lastIndex != toDeleteIndex) {
38
+ NftId lastId = set.ids[lastIndex];
39
+ set.ids[toDeleteIndex] = lastId;
40
+ set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
41
+ }
42
+
43
+ set.ids.pop();
44
+ delete set.at[nftId];
45
+ }
46
+
47
+ function isEmpty(Set storage set) external view returns(bool empty) {
48
+ return set.ids.length == 0;
49
+ }
50
+
51
+ function contains(Set storage set, NftId nftId) external view returns(bool inSet) {
52
+ return set.at[nftId] > 0;
53
+ }
54
+
55
+ function size(Set storage set) external view returns(uint256 length) {
56
+ return set.ids.length;
57
+ }
58
+
59
+ function getElementAt(Set storage set, uint256 index) external view returns(NftId nftId) {
60
+ return set.ids[index];
61
+ }
62
+ }
@@ -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
+ }
@@ -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
+ }