@etherisc/gif-next 0.0.2-a1053ad-624 → 0.0.2-a105567-464

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 (564) hide show
  1. package/README.md +76 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -246
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +384 -155
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +431 -2918
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +692 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +719 -406
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +585 -243
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +382 -76
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  42. package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  49. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1097 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +742 -0
  52. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +297 -358
  54. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  55. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  56. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1050 -0
  58. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  59. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1417 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  65. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +826 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +718 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1270 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +806 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  73. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +233 -200
  74. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  76. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  78. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  79. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +259 -284
  80. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  81. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  82. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  83. package/artifacts/contracts/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +132 -166
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  85. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1138 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +750 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PricingService.sol/PricingService.json +975 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +774 -0
  92. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  93. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  95. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  99. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +534 -59
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +438 -200
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  106. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  107. package/artifacts/contracts/registry/Registry.sol/Registry.json +857 -309
  108. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  109. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -352
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +339 -134
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  116. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +643 -0
  120. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  121. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
  122. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  130. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  131. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  132. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  134. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  136. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  137. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +225 -167
  138. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  139. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  140. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  142. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  144. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  146. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  148. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  150. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
  152. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  154. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  155. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  156. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  158. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  160. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +35 -0
  162. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  163. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IService.sol/IService.json} +97 -78
  164. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  166. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  167. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  168. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  169. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  170. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  171. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
  172. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  173. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  174. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  175. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  176. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
  178. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  179. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  180. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
  182. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
  184. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  185. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  186. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  187. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +193 -180
  188. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  189. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  190. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  192. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  194. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  195. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1441 -0
  196. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
  197. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
  198. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  199. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +890 -0
  200. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
  201. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
  202. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
  204. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  205. package/artifacts/contracts/staking/Staking.sol/Staking.json +2008 -0
  206. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  208. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  209. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +390 -0
  210. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1213 -0
  212. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +722 -0
  214. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1682 -0
  216. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -0
  218. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  219. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  220. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  221. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  222. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  223. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  224. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  226. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  227. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  228. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  230. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  231. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  232. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
  234. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  235. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  236. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  238. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  240. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  242. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  244. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  246. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +174 -0
  248. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  250. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  251. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  252. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  254. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  256. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  258. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  260. package/contracts/distribution/Distribution.sol +261 -0
  261. package/contracts/distribution/DistributionService.sol +298 -0
  262. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  263. package/contracts/distribution/IDistributionComponent.sol +66 -0
  264. package/contracts/distribution/IDistributionService.sol +81 -0
  265. package/contracts/instance/BundleManager.sol +126 -0
  266. package/contracts/instance/IInstance.sol +67 -16
  267. package/contracts/instance/IInstanceService.sol +72 -8
  268. package/contracts/instance/Instance.sol +158 -359
  269. package/contracts/instance/InstanceAdmin.sol +331 -0
  270. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  271. package/contracts/instance/InstanceReader.sol +151 -66
  272. package/contracts/instance/InstanceService.sol +318 -58
  273. package/contracts/instance/InstanceServiceManager.sol +12 -24
  274. package/contracts/instance/InstanceStore.sol +260 -0
  275. package/contracts/instance/base/BalanceStore.sol +118 -0
  276. package/contracts/instance/base/Cloneable.sol +51 -0
  277. package/contracts/instance/base/ObjectManager.sol +82 -0
  278. package/contracts/instance/module/IAccess.sol +29 -21
  279. package/contracts/instance/module/IBundle.sol +8 -7
  280. package/contracts/instance/module/IComponents.sol +52 -0
  281. package/contracts/instance/module/IDistribution.sol +7 -4
  282. package/contracts/instance/module/IPolicy.sol +56 -17
  283. package/contracts/instance/module/IRisk.sol +1 -1
  284. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  285. package/contracts/pool/BundleService.sol +296 -0
  286. package/contracts/pool/BundleServiceManager.sol +42 -0
  287. package/contracts/pool/IBundleService.sol +106 -0
  288. package/contracts/pool/IPoolComponent.sol +112 -0
  289. package/contracts/pool/IPoolService.sol +147 -0
  290. package/contracts/pool/Pool.sol +299 -0
  291. package/contracts/pool/PoolService.sol +424 -0
  292. package/contracts/pool/PoolServiceManager.sol +42 -0
  293. package/contracts/product/ApplicationService.sol +254 -0
  294. package/contracts/product/ApplicationServiceManager.sol +38 -0
  295. package/contracts/product/ClaimService.sol +437 -0
  296. package/contracts/product/ClaimServiceManager.sol +38 -0
  297. package/contracts/product/IApplicationService.sol +62 -0
  298. package/contracts/product/IClaimService.sol +93 -0
  299. package/contracts/product/IPolicyService.sol +78 -0
  300. package/contracts/product/IPricingService.sol +39 -0
  301. package/contracts/product/IProductComponent.sol +42 -0
  302. package/contracts/product/IProductService.sol +33 -0
  303. package/contracts/product/PolicyService.sol +473 -0
  304. package/contracts/product/PolicyServiceManager.sol +42 -0
  305. package/contracts/product/PricingService.sol +301 -0
  306. package/contracts/product/PricingServiceManager.sol +42 -0
  307. package/contracts/product/Product.sol +377 -0
  308. package/contracts/product/ProductService.sol +124 -0
  309. package/contracts/product/ProductServiceManager.sol +42 -0
  310. package/contracts/registry/ChainNft.sol +14 -0
  311. package/contracts/registry/IRegistry.sol +81 -12
  312. package/contracts/registry/IRegistryService.sol +54 -20
  313. package/contracts/registry/ITransferInterceptor.sol +1 -0
  314. package/contracts/registry/Registry.sol +405 -243
  315. package/contracts/registry/RegistryAdmin.sol +237 -0
  316. package/contracts/registry/RegistryService.sol +124 -297
  317. package/contracts/registry/RegistryServiceManager.sol +26 -32
  318. package/contracts/registry/ReleaseManager.sol +599 -0
  319. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  320. package/contracts/registry/TokenRegistry.sol +358 -0
  321. package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +277 -223
  322. package/contracts/shared/AccessManagerExtended.sol +470 -0
  323. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  324. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  325. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  326. package/contracts/shared/Component.sol +286 -0
  327. package/contracts/shared/ComponentService.sol +596 -0
  328. package/contracts/shared/ComponentServiceManager.sol +35 -0
  329. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  330. package/contracts/shared/ERC165.sol +15 -9
  331. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  332. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  333. package/contracts/shared/IComponent.sol +74 -0
  334. package/contracts/shared/IComponentService.sol +91 -0
  335. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  336. package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
  337. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  338. package/contracts/shared/INftOwnable.sol +13 -12
  339. package/contracts/shared/IPolicyHolder.sol +45 -0
  340. package/contracts/shared/IRegisterable.sol +4 -6
  341. package/contracts/shared/IRegistryLinked.sol +11 -0
  342. package/contracts/shared/IService.sol +18 -0
  343. package/contracts/shared/IVersionable.sol +5 -48
  344. package/contracts/shared/InitializableCustom.sol +177 -0
  345. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  346. package/contracts/shared/KeyValueStore.sol +130 -0
  347. package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
  348. package/contracts/shared/NftIdSetManager.sol +65 -0
  349. package/contracts/shared/NftOwnable.sol +60 -89
  350. package/contracts/shared/PolicyHolder.sol +102 -0
  351. package/contracts/shared/ProxyManager.sol +131 -26
  352. package/contracts/shared/Registerable.sol +26 -40
  353. package/contracts/shared/RegistryLinked.sol +43 -0
  354. package/contracts/shared/Service.sol +77 -0
  355. package/contracts/shared/TokenHandler.sol +37 -6
  356. package/contracts/shared/Versionable.sol +4 -92
  357. package/contracts/staking/IStaking.sol +152 -0
  358. package/contracts/staking/IStakingManager.sol +15 -0
  359. package/contracts/staking/IStakingService.sol +162 -0
  360. package/contracts/staking/IStakingStore.sol +130 -0
  361. package/contracts/staking/StakeManagerLib.sol +156 -0
  362. package/contracts/staking/Staking.sol +496 -0
  363. package/contracts/staking/StakingManager.sol +54 -0
  364. package/contracts/staking/StakingReader.sol +146 -0
  365. package/contracts/staking/StakingService.sol +376 -0
  366. package/contracts/staking/StakingServiceManager.sol +45 -0
  367. package/contracts/staking/StakingStore.sol +331 -0
  368. package/contracts/staking/TargetManagerLib.sol +179 -0
  369. package/contracts/{types → type}/AddressSet.sol +1 -1
  370. package/contracts/type/Amount.sol +114 -0
  371. package/contracts/{types → type}/Blocknumber.sol +21 -3
  372. package/contracts/type/ClaimId.sol +75 -0
  373. package/contracts/{types → type}/DistributorType.sol +2 -2
  374. package/contracts/{types → type}/Fee.sol +33 -23
  375. package/contracts/{types → type}/NftId.sol +18 -12
  376. package/contracts/type/NftIdSet.sol +62 -0
  377. package/contracts/{types → type}/ObjectType.sol +26 -9
  378. package/contracts/type/PayoutId.sol +82 -0
  379. package/contracts/{types → type}/Referral.sol +5 -1
  380. package/contracts/{types → type}/RiskId.sol +1 -1
  381. package/contracts/type/RoleId.sol +143 -0
  382. package/contracts/type/Seconds.sol +71 -0
  383. package/contracts/{types → type}/StateId.sol +28 -6
  384. package/contracts/{types → type}/Timestamp.sol +18 -13
  385. package/contracts/{types → type}/UFixed.sol +1 -0
  386. package/contracts/{types → type}/Version.sol +6 -2
  387. package/package.json +3 -3
  388. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  389. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  390. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
  391. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  392. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
  393. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  394. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  395. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  396. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  397. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  398. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  399. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  400. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -774
  401. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  402. package/artifacts/contracts/components/Product.sol/Product.json +0 -754
  403. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  404. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  405. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  406. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  407. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  408. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  409. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  410. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  411. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  412. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  413. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  414. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  415. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  416. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  417. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  418. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  419. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  420. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  421. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  423. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  425. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  426. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  427. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  428. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  429. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  430. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  431. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  432. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  433. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  434. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  435. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  436. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  438. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  440. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  442. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  443. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  444. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
  445. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  446. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  447. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  448. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  449. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  450. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  451. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  452. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  453. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  454. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  455. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  456. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  457. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  458. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  459. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  460. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  461. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  462. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  463. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  464. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  465. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  466. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  467. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  468. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  469. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  470. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  471. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  472. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  473. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  474. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  475. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  476. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  477. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  478. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  479. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  480. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  481. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  482. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  483. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  484. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  485. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  486. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  487. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  488. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  489. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  490. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  491. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  492. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  493. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  494. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  495. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  496. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  497. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  498. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  499. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  500. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  501. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  502. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  503. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  504. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  505. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  506. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  507. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  508. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  509. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  510. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  511. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  512. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  513. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  514. package/contracts/components/BaseComponent.sol +0 -86
  515. package/contracts/components/Distribution.sol +0 -166
  516. package/contracts/components/IBaseComponent.sol +0 -24
  517. package/contracts/components/IDistributionComponent.sol +0 -43
  518. package/contracts/components/IPoolComponent.sol +0 -62
  519. package/contracts/components/IProductComponent.sol +0 -35
  520. package/contracts/components/Pool.sol +0 -259
  521. package/contracts/components/Product.sol +0 -297
  522. package/contracts/experiment/cloning/Cloner.sol +0 -47
  523. package/contracts/experiment/errors/Require.sol +0 -38
  524. package/contracts/experiment/errors/Revert.sol +0 -44
  525. package/contracts/experiment/inheritance/A.sol +0 -53
  526. package/contracts/experiment/inheritance/B.sol +0 -28
  527. package/contracts/experiment/inheritance/C.sol +0 -34
  528. package/contracts/experiment/inheritance/IA.sol +0 -13
  529. package/contracts/experiment/inheritance/IB.sol +0 -10
  530. package/contracts/experiment/inheritance/IC.sol +0 -12
  531. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  532. package/contracts/experiment/statemachine/ISM.sol +0 -25
  533. package/contracts/experiment/statemachine/SM.sol +0 -57
  534. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  535. package/contracts/experiment/types/TypeA.sol +0 -47
  536. package/contracts/experiment/types/TypeB.sol +0 -29
  537. package/contracts/instance/AccessManagedSimple.sol +0 -114
  538. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  539. package/contracts/instance/InstanceAccessManager.sol +0 -288
  540. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  541. package/contracts/instance/base/IInstanceBase.sol +0 -23
  542. package/contracts/instance/base/IService.sol +0 -15
  543. package/contracts/instance/base/KeyValueStore.sol +0 -172
  544. package/contracts/instance/base/ServiceBase.sol +0 -44
  545. package/contracts/instance/module/ISetup.sol +0 -43
  546. package/contracts/instance/module/ITreasury.sol +0 -23
  547. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  548. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  549. package/contracts/instance/service/IDistributionService.sol +0 -12
  550. package/contracts/instance/service/IPoolService.sol +0 -37
  551. package/contracts/instance/service/IProductService.sol +0 -107
  552. package/contracts/shared/ContractDeployerLib.sol +0 -72
  553. package/contracts/test/TestFee.sol +0 -25
  554. package/contracts/test/TestRegisterable.sol +0 -18
  555. package/contracts/test/TestRoleId.sol +0 -14
  556. package/contracts/test/TestService.sol +0 -26
  557. package/contracts/test/TestToken.sol +0 -26
  558. package/contracts/test/TestVersion.sol +0 -44
  559. package/contracts/test/TestVersionable.sol +0 -17
  560. package/contracts/types/ChainId.sol +0 -38
  561. package/contracts/types/NftIdSet.sol +0 -60
  562. package/contracts/types/NumberId.sol +0 -52
  563. package/contracts/types/RoleId.sol +0 -82
  564. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,75 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint16 allows for 65'535 claims per policy
5
+ type ClaimId is uint16;
6
+
7
+ import {CLAIM} from "./ObjectType.sol";
8
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
9
+ import {NftId} from "./NftId.sol";
10
+
11
+ // type bindings
12
+ using {
13
+ eqClaimId as ==,
14
+ neClaimId as !=,
15
+ ClaimIdLib.eqz,
16
+ ClaimIdLib.gtz,
17
+ ClaimIdLib.toInt,
18
+ ClaimIdLib.toKey32
19
+ } for ClaimId global;
20
+
21
+
22
+ // pure free functions for operators
23
+ function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
24
+ return ClaimId.unwrap(a) == ClaimId.unwrap(b);
25
+ }
26
+
27
+ function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
28
+ return ClaimId.unwrap(a) != ClaimId.unwrap(b);
29
+ }
30
+
31
+ // library functions that operate on user defined type
32
+ library ClaimIdLib {
33
+ /// @dev claim id min value (0), use only for non-initialized values
34
+ function zero() public pure returns (ClaimId) {
35
+ return ClaimId.wrap(0);
36
+ }
37
+ /// @dev claim id max value (2**16-1), use only for non-initialized values
38
+ function max() public pure returns (ClaimId) {
39
+ return ClaimId.wrap(type(uint16).max);
40
+ }
41
+
42
+ /// @dev Converts an uint into a ClaimId.
43
+ function toClaimId(uint256 a) public pure returns (ClaimId) {
44
+ return ClaimId.wrap(uint16(a));
45
+ }
46
+
47
+ /// @dev Converts the ClaimId to a uint.
48
+ function toInt(ClaimId a) public pure returns (uint16) {
49
+ return uint16(ClaimId.unwrap(a));
50
+ }
51
+
52
+ /// @dev Converts the ClaimId and NftId to a Key32.
53
+ function toKey32(ClaimId claimId, NftId policyNftId) public pure returns (Key32) {
54
+ return Key32Lib.toKey32(CLAIM(), toKeyId(claimId, policyNftId));
55
+ }
56
+
57
+ /// @dev Converts the ClaimId and NftId to a Key32.
58
+ function toKeyId(ClaimId claimId, NftId policyNftId) public pure returns (KeyId) {
59
+ return KeyId.wrap(
60
+ bytes31(
61
+ bytes14(
62
+ uint112(
63
+ NftId.unwrap(policyNftId) << 16 + ClaimId.unwrap(claimId)))));
64
+ }
65
+
66
+ /// @dev Returns true if the value is non-zero (> 0).
67
+ function gtz(ClaimId a) public pure returns (bool) {
68
+ return ClaimId.unwrap(a) > 0;
69
+ }
70
+
71
+ /// @dev Returns true if the value is zero (== 0).
72
+ function eqz(ClaimId a) public pure returns (bool) {
73
+ return ClaimId.unwrap(a) == 0;
74
+ }
75
+ }
@@ -3,7 +3,7 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
5
  import {NftId} from "./NftId.sol";
6
- import {DISTRIBUTION_TYPE} from "./ObjectType.sol";
6
+ import {DISTRIBUTOR_TYPE} from "./ObjectType.sol";
7
7
 
8
8
  type DistributorType is bytes8;
9
9
 
@@ -45,7 +45,7 @@ library DistributorTypeLib {
45
45
 
46
46
  /// @dev Returns the key32 value for the specified nft id and object type.
47
47
  function toKey32(DistributorType id) public pure returns (Key32 key) {
48
- return Key32Lib.toKey32(DISTRIBUTION_TYPE(), toKeyId(id));
48
+ return Key32Lib.toKey32(DISTRIBUTOR_TYPE(), toKeyId(id));
49
49
  }
50
50
 
51
51
  /// @dev Returns the key id value for the specified nft id
@@ -1,30 +1,20 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
+ import {Amount, AmountLib} from "./Amount.sol";
4
5
  import {UFixed, UFixedLib} from "./UFixed.sol";
5
6
 
6
7
  struct Fee {
7
8
  UFixed fractionalFee;
9
+ // TODO migrate fixed fee to Amount
8
10
  uint256 fixedFee;
9
11
  }
10
12
 
11
13
  library FeeLib {
12
14
 
13
- function calculateFee(
14
- Fee memory fee,
15
- uint256 amount
16
- )
17
- public
18
- pure
19
- returns (
20
- uint256 feeAmount,
21
- uint256 netAmount
22
- )
23
- {
24
- UFixed fractionalAmount = UFixedLib.toUFixed(amount) *
25
- fee.fractionalFee;
26
- feeAmount = fractionalAmount.toInt() + fee.fixedFee;
27
- netAmount = amount - feeAmount;
15
+ /// @dev Return a zero fee struct (0, 0)
16
+ function zero() public pure returns (Fee memory fee) {
17
+ return Fee(UFixed.wrap(0), 0);
28
18
  }
29
19
 
30
20
  /// @dev Converts the uint256 to a fee struct.
@@ -35,22 +25,42 @@ library FeeLib {
35
25
  return Fee(fractionalFee, fixedFee);
36
26
  }
37
27
 
28
+ /// @dev Calculates fee and net amounts for the provided parameters
29
+ function calculateFee(
30
+ Fee memory fee,
31
+ Amount amount
32
+ )
33
+ public
34
+ pure
35
+ returns (
36
+ Amount feeAmount,
37
+ Amount netAmount
38
+ )
39
+ {
40
+ netAmount = amount;
41
+ if(gtz(fee)) {
42
+ UFixed fractionalAmount =
43
+ amount.toUFixed() * fee.fractionalFee;
44
+ feeAmount = AmountLib.toAmount(fractionalAmount.toInt() + fee.fixedFee);
45
+ netAmount = netAmount - feeAmount;
46
+ }
47
+ }
48
+
38
49
  /// @dev Return the percent fee struct (x%, 0)
39
50
  function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
40
51
  return Fee(UFixedLib.toUFixed(percent, -2), 0);
41
52
  }
42
53
 
43
- /// @dev Return a zero fee struct (0, 0)
44
- function zeroFee() public pure returns (Fee memory fee) {
45
- return Fee(UFixed.wrap(0), 0);
46
- }
47
-
48
54
  // pure free functions for operators
49
- function feeIsSame(Fee memory a, Fee memory b) public pure returns (bool isSame) {
55
+ function eq(Fee memory a, Fee memory b) public pure returns (bool isSame) {
50
56
  return a.fixedFee == b.fixedFee && a.fractionalFee == b.fractionalFee;
51
57
  }
52
58
 
53
- function feeIsZero(Fee memory fee) public pure returns (bool) {
59
+ function gtz(Fee memory fee) public pure returns (bool) {
60
+ return UFixed.unwrap(fee.fractionalFee) > 0 || fee.fixedFee > 0;
61
+ }
62
+
63
+ function eqz(Fee memory fee) public pure returns (bool) {
54
64
  return fee.fixedFee == 0 && UFixed.unwrap(fee.fractionalFee) == 0;
55
65
  }
56
66
  }
@@ -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";
@@ -18,17 +18,6 @@ using {
18
18
  NftIdLib.toKey32
19
19
  } for NftId global;
20
20
 
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
21
  // pure free functions for operators
33
22
  function eqNftId(NftId a, NftId b) pure returns (bool isSame) {
34
23
  return NftId.unwrap(a) == NftId.unwrap(b);
@@ -38,8 +27,25 @@ function neNftId(NftId a, NftId b) pure returns (bool isDifferent) {
38
27
  return NftId.unwrap(a) != NftId.unwrap(b);
39
28
  }
40
29
 
30
+ // @dev Converts the uint256 to a NftId.
31
+ function toNftId(uint256 id) pure returns (NftId) {
32
+ return NftId.wrap(uint96(id));
33
+ }
34
+
41
35
  // library functions that operate on user defined type
42
36
  library NftIdLib {
37
+
38
+ /// @dev the zero nft id
39
+ /// is never a valid nft id and implies a non-initialized value
40
+ function zero() public pure returns (NftId) {
41
+ return NftId.wrap(0);
42
+ }
43
+
44
+ /// @dev Converts the uint256 to a NftId.
45
+ function toNftId(uint256 id) public pure returns (NftId) {
46
+ return NftId.wrap(uint96(id));
47
+ }
48
+
43
49
  /// @dev Converts the NftId to a uint256.
44
50
  function toInt(NftId nftId) public pure returns (uint96) {
45
51
  return uint96(NftId.unwrap(nftId));
@@ -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
+ }
@@ -8,11 +8,16 @@ using {
8
8
  eqObjectType as ==,
9
9
  neObjectType as !=,
10
10
  ObjectTypeLib.toInt,
11
+ ObjectTypeLib.eqz,
11
12
  ObjectTypeLib.gtz
12
13
  } for ObjectType global;
13
14
 
14
15
  // general pure free functions
15
16
 
17
+ function RELEASE() pure returns (ObjectType) {
18
+ return toObjectType(1);
19
+ }
20
+
16
21
  function PROTOCOL() pure returns (ObjectType) {
17
22
  return toObjectType(10);
18
23
  }
@@ -29,6 +34,10 @@ function REGISTRY() pure returns (ObjectType) {
29
34
  return toObjectType(40);
30
35
  }
31
36
 
37
+ function STAKING() pure returns (ObjectType) {
38
+ return toObjectType(45);
39
+ }
40
+
32
41
  function TOKEN() pure returns (ObjectType) {
33
42
  return toObjectType(50);
34
43
  }
@@ -49,8 +58,7 @@ function COMPONENT() pure returns (ObjectType) {
49
58
  return toObjectType(100);
50
59
  }
51
60
 
52
- // TODO replace by PRODUCT_SETUP
53
- function TREASURY() pure returns (ObjectType) {
61
+ function FEE() pure returns (ObjectType) {
54
62
  return toObjectType(101);
55
63
  }
56
64
 
@@ -66,7 +74,7 @@ function DISTRIBUTION() pure returns (ObjectType) {
66
74
  return toObjectType(120);
67
75
  }
68
76
 
69
- function DISTRIBUTION_TYPE() pure returns (ObjectType) {
77
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
70
78
  return toObjectType(121);
71
79
  }
72
80
 
@@ -86,24 +94,32 @@ function POOL() pure returns (ObjectType) {
86
94
  return toObjectType(140);
87
95
  }
88
96
 
97
+ function BUNDLE() pure returns (ObjectType) {
98
+ return toObjectType(220);
99
+ }
100
+
89
101
  function RISK() pure returns (ObjectType) {
90
102
  return toObjectType(200);
91
103
  }
92
104
 
93
- function POLICY() pure returns (ObjectType) {
105
+ function APPLICATION() pure returns (ObjectType) {
94
106
  return toObjectType(210);
95
107
  }
96
108
 
97
- function BUNDLE() pure returns (ObjectType) {
98
- return toObjectType(220);
109
+ function POLICY() pure returns (ObjectType) {
110
+ return toObjectType(211);
99
111
  }
100
112
 
101
113
  function CLAIM() pure returns (ObjectType) {
102
- return toObjectType(211);
114
+ return toObjectType(212);
103
115
  }
104
116
 
105
117
  function PAYOUT() pure returns (ObjectType) {
106
- return toObjectType(212);
118
+ return toObjectType(213);
119
+ }
120
+
121
+ function PRICE() pure returns (ObjectType) {
122
+ return toObjectType(230);
107
123
  }
108
124
 
109
125
  /// @dev Converts the uint8 to a ObjectType.
@@ -111,6 +127,7 @@ function toObjectType(uint256 objectType) pure returns (ObjectType) {
111
127
  return ObjectType.wrap(uint8(objectType));
112
128
  }
113
129
 
130
+ // TODO move to ObjecTypeLib and rename to zero()
114
131
  /// @dev Return the ObjectType zero (0)
115
132
  function zeroObjectType() pure returns (ObjectType) {
116
133
  return ObjectType.wrap(0);
@@ -149,4 +166,4 @@ library ObjectTypeLib {
149
166
  function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
150
167
  return eqObjectType(a, b);
151
168
  }
152
- }
169
+ }
@@ -0,0 +1,82 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint24 allows for 65'535 claims with 255 payouts each per policy
5
+ type PayoutId is uint24;
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, uint8 payoutNo) public pure returns (PayoutId) {
43
+ return PayoutId.wrap((ClaimId.unwrap(claimId) << 8) + payoutNo);
44
+ }
45
+
46
+ function toClaimId(PayoutId payoutId) public pure returns (ClaimId) {
47
+ return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 8));
48
+ }
49
+
50
+ function toPayoutNo(PayoutId payoutId) public pure returns (uint8) {
51
+ return uint8(PayoutId.unwrap(payoutId) & 255);
52
+ }
53
+
54
+ /// @dev Converts the PayoutId to a uint.
55
+ function toInt(PayoutId a) public pure returns (uint24) {
56
+ return uint24(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) << 24) + 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";
@@ -82,4 +82,8 @@ library ReferralLib {
82
82
  function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
83
83
  return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
84
84
  }
85
+
86
+ function eqz(ReferralId id) public pure returns (bool) {
87
+ return eqReferralId(id, zero());
88
+ }
85
89
  }
@@ -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 {RISK} from "./ObjectType.sol";
@@ -0,0 +1,143 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
+ import {ROLE} from "./ObjectType.sol";
6
+
7
+ type RoleId is uint64;
8
+
9
+ // type bindings
10
+ using {
11
+ eqRoleId as ==,
12
+ neRoleId as !=,
13
+ RoleIdLib.eqz,
14
+ RoleIdLib.gtz,
15
+ RoleIdLib.toInt,
16
+ RoleIdLib.toKey32
17
+ } for RoleId global;
18
+
19
+
20
+ /// @dev role id needs to match with oz AccessManager.ADMIN_ROLE
21
+ function ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).min); }
22
+
23
+ /// @dev role id needs to match with oz AccessManager.PUBLIC_ROLE
24
+ function PUBLIC_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(type(uint64).max); }
25
+
26
+ // general pure free functions
27
+
28
+ /// @dev cental role for gif release management.
29
+ /// this role is necessary to call ReleaseManager.createNextRelease/activateNextRelease
30
+ /// the actual deployment of a release requires the GIF_MANAGER_ROLE.
31
+ /// GIF_ADMIN_ROLE is the admin of the GIF_MANAGER_ROLE.
32
+ /// only a single holder may hold this role at any time
33
+ function GIF_ADMIN_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1500); }
34
+
35
+ /// @dev role for token whith/blacklisting, deploying and registering the services for a new major release
36
+ /// registering services for a new major release is only possible after a new initial release has been created by the GIF_ADMIN_ROLE
37
+ /// token white/blacklisting is possible for any active release
38
+ function GIF_MANAGER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1600); }
39
+
40
+ /// @dev instance specific role to register/own a distribution component
41
+ function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2); }
42
+
43
+ /// @dev instance specific role to register/own an oracle component
44
+ function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(3); }
45
+
46
+ /// @dev instance specific role to register/own a pool component
47
+ function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(4); }
48
+
49
+ /// @dev instance specific role to register/own a product component
50
+ function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(5); }
51
+
52
+ /// @dev role associated with an instance contract
53
+ /// this role is the admin role for the INSTANCE_OWNER_ROLE
54
+ function INSTANCE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2600); }
55
+
56
+ /// @dev required role to register/own an instance
57
+ /// allows instance specific target, role and access management
58
+ function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1900); }
59
+
60
+ function REGISTRY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1800); }
61
+
62
+ /// @dev instance specific role for instance service
63
+ function INSTANCE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2000); }
64
+
65
+ /// @dev role for creating gif target on instance service
66
+ function CAN_CREATE_GIF_TARGET__ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1700); }
67
+
68
+ /// @dev role for registering gif components
69
+ function COMPONENT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2001); }
70
+
71
+ /// @dev instance specific role for distribution service
72
+ function DISTRIBUTION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2100); }
73
+
74
+ /// @dev instance specific role for pool service
75
+ function POOL_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2200); }
76
+
77
+ /// @dev instance specific role for product service
78
+ function PRODUCT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2300); }
79
+
80
+ /// @dev instance specific role for application service
81
+ function APPLICATION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2400); }
82
+
83
+ /// @dev instance specific role for policy service
84
+ function POLICY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2410); }
85
+
86
+ /// @dev instance specific role for claim service
87
+ function CLAIM_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2420); }
88
+
89
+ /// @dev instance specific role for bundle service
90
+ function BUNDLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2500); }
91
+
92
+ /// @dev instance specific role for pricing service
93
+ function PRICING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2800); }
94
+
95
+ /// @dev instance specific role for staking service
96
+ function STAKING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2900); }
97
+
98
+ // @dev Returns true iff role ids a and b are identical
99
+ function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
100
+ return RoleId.unwrap(a) == RoleId.unwrap(b);
101
+ }
102
+
103
+ // @dev Returns true iff role ids a and b are different
104
+ function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
105
+ return RoleId.unwrap(a) != RoleId.unwrap(b);
106
+ }
107
+
108
+ library RoleIdLib {
109
+ /// @dev Converts the RoleId to a uint.
110
+ function zero() public pure returns (RoleId) {
111
+ return RoleId.wrap(0);
112
+ }
113
+
114
+ /// @dev Converts an uint into a RoleId.
115
+ function toRoleId(uint256 a) public pure returns (RoleId) {
116
+ return RoleId.wrap(uint64(a));
117
+ }
118
+
119
+ /// @dev Converts the RoleId to a uint.
120
+ function toInt(RoleId a) public pure returns (uint64) {
121
+ return uint64(RoleId.unwrap(a));
122
+ }
123
+
124
+ /// @dev Returns true if the value is non-zero (> 0).
125
+ function gtz(RoleId a) public pure returns (bool) {
126
+ return RoleId.unwrap(a) > 0;
127
+ }
128
+
129
+ /// @dev Returns true if the value is zero (== 0).
130
+ function eqz(RoleId a) public pure returns (bool) {
131
+ return RoleId.unwrap(a) == 0;
132
+ }
133
+
134
+ /// @dev Returns the key32 value for the specified id and object type.
135
+ function toKey32(RoleId a) public pure returns (Key32 key) {
136
+ return Key32Lib.toKey32(ROLE(), toKeyId(a));
137
+ }
138
+
139
+ /// @dev Returns the key id value for the specified id
140
+ function toKeyId(RoleId a) public pure returns (KeyId keyId) {
141
+ return KeyId.wrap(bytes31(uint248(RoleId.unwrap(a))));
142
+ }
143
+ }