@etherisc/gif-next 0.0.2-8a352ce → 0.0.2-8bdd2eb-413

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 (503) hide show
  1. package/README.md +360 -8
  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 +294 -514
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +650 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +490 -585
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -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 +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1565 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1053 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -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/base/Cloneable.sol/Cloneable.json +190 -0
  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 +4 -0
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  41. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  43. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IComponents.sol/IComponents.json} +2 -2
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  49. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +690 -0
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -0
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +536 -0
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/product/IProductService.sol/IProductService.json +387 -0
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +703 -76
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1110 -0
  108. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  110. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.json +1008 -125
  112. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  113. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  114. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1415 -0
  116. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +709 -0
  118. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
  120. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  121. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  124. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  126. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  128. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  129. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  130. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  131. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  132. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  133. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  134. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  135. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  136. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  137. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  138. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  140. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  141. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +526 -0
  142. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  143. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  144. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  146. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  148. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  150. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  152. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  153. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  154. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +468 -0
  156. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  157. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +115 -0
  158. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  159. package/artifacts/contracts/{registry/Registry.sol/Registerable.json → shared/INftOwnable.sol/INftOwnable.json} +42 -77
  160. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  162. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  163. package/artifacts/contracts/{instance/pool/PoolModule.sol/PoolModule.json → shared/IRegisterable.sol/IRegisterable.json} +98 -79
  164. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  166. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IService.sol/IService.json +333 -0
  168. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  170. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  171. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  172. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  173. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  174. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  175. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  176. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  177. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  178. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  179. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  180. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  181. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  182. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  183. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  184. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  186. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +353 -0
  188. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  189. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  190. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  191. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +260 -218
  192. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  193. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  194. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  195. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  196. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  197. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  198. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  199. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  200. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  201. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  202. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  204. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  205. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  206. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  207. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  208. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  209. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  210. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  212. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  214. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  216. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  217. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  218. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  219. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  220. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  221. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -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/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  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/type/Key32.sol/Key32Lib.json +125 -0
  232. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -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/type/ObjectType.sol/ObjectTypeLib.json +92 -0
  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/type/RiskId.sol/RiskIdLib.json +86 -0
  244. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  246. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  248. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +92 -0
  250. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  252. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
  254. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  256. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  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 +74 -15
  267. package/contracts/instance/IInstanceService.sol +81 -0
  268. package/contracts/instance/Instance.sol +216 -45
  269. package/contracts/instance/InstanceAdmin.sol +331 -0
  270. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  271. package/contracts/instance/InstanceReader.sol +365 -0
  272. package/contracts/instance/InstanceService.sol +362 -0
  273. package/contracts/instance/InstanceServiceManager.sol +44 -0
  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 +46 -0
  279. package/contracts/instance/module/IBundle.sol +20 -0
  280. package/contracts/instance/module/IComponents.sol +52 -0
  281. package/contracts/instance/module/IDistribution.sol +42 -0
  282. package/contracts/instance/module/IPolicy.sol +84 -0
  283. package/contracts/instance/module/IRisk.sol +11 -0
  284. package/contracts/mock/Dip.sol +26 -0
  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 +150 -0
  290. package/contracts/pool/Pool.sol +299 -0
  291. package/contracts/pool/PoolService.sol +453 -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 +442 -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 +475 -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 +152 -108
  311. package/contracts/registry/IRegistry.sol +103 -49
  312. package/contracts/registry/IRegistryService.sol +69 -0
  313. package/contracts/registry/ITransferInterceptor.sol +7 -0
  314. package/contracts/registry/Registry.sol +513 -119
  315. package/contracts/registry/RegistryAdmin.sol +237 -0
  316. package/contracts/registry/RegistryService.sol +266 -0
  317. package/contracts/registry/RegistryServiceManager.sol +58 -0
  318. package/contracts/registry/ReleaseManager.sol +599 -0
  319. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  320. package/contracts/registry/TokenRegistry.sol +315 -0
  321. package/contracts/shared/AccessManagerCustom.sol +736 -0
  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 +278 -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 +27 -0
  331. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  332. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  333. package/contracts/shared/IComponent.sol +70 -0
  334. package/contracts/shared/IComponentService.sol +91 -0
  335. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  336. package/contracts/shared/IKeyValueStore.sol +53 -0
  337. package/contracts/shared/ILifecycle.sol +30 -0
  338. package/contracts/shared/INftOwnable.sol +23 -0
  339. package/contracts/shared/IPolicyHolder.sol +45 -0
  340. package/contracts/shared/IRegisterable.sol +15 -0
  341. package/contracts/shared/IRegistryLinked.sol +11 -0
  342. package/contracts/shared/IService.sol +18 -0
  343. package/contracts/shared/IVersionable.sol +53 -0
  344. package/contracts/shared/InitializableCustom.sol +177 -0
  345. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  346. package/contracts/shared/KeyValueStore.sol +127 -0
  347. package/contracts/shared/Lifecycle.sol +121 -0
  348. package/contracts/shared/NftIdSetManager.sol +65 -0
  349. package/contracts/shared/NftOwnable.sol +107 -0
  350. package/contracts/shared/PolicyHolder.sol +102 -0
  351. package/contracts/shared/ProxyManager.sol +199 -0
  352. package/contracts/shared/Registerable.sol +75 -0
  353. package/contracts/shared/RegistryLinked.sol +43 -0
  354. package/contracts/shared/Service.sol +77 -0
  355. package/contracts/shared/TokenHandler.sol +58 -0
  356. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  357. package/contracts/shared/Versionable.sol +59 -0
  358. package/contracts/staking/IStaking.sol +168 -0
  359. package/contracts/staking/IStakingService.sol +149 -0
  360. package/contracts/staking/StakeManagerLib.sol +179 -0
  361. package/contracts/staking/Staking.sol +551 -0
  362. package/contracts/staking/StakingManager.sol +54 -0
  363. package/contracts/staking/StakingReader.sol +187 -0
  364. package/contracts/staking/StakingService.sol +406 -0
  365. package/contracts/staking/StakingServiceManager.sol +45 -0
  366. package/contracts/staking/StakingStore.sol +572 -0
  367. package/contracts/staking/TargetManagerLib.sol +207 -0
  368. package/contracts/type/AddressSet.sol +58 -0
  369. package/contracts/type/Amount.sol +128 -0
  370. package/contracts/type/Blocknumber.sol +136 -0
  371. package/contracts/type/ClaimId.sol +75 -0
  372. package/contracts/type/DistributorType.sol +55 -0
  373. package/contracts/type/Fee.sol +66 -0
  374. package/contracts/type/Key32.sol +50 -0
  375. package/contracts/type/NftId.sol +78 -0
  376. package/contracts/type/NftIdSet.sol +62 -0
  377. package/contracts/type/ObjectType.sol +169 -0
  378. package/contracts/type/PayoutId.sol +82 -0
  379. package/contracts/type/Referral.sol +89 -0
  380. package/contracts/type/RiskId.sol +43 -0
  381. package/contracts/type/RoleId.sol +143 -0
  382. package/contracts/type/Seconds.sol +81 -0
  383. package/contracts/type/StateId.sol +123 -0
  384. package/contracts/type/Timestamp.sol +132 -0
  385. package/contracts/type/UFixed.sol +326 -0
  386. package/contracts/type/Version.sol +108 -0
  387. package/package.json +21 -6
  388. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  389. package/artifacts/contracts/components/Component.sol/Component.json +0 -179
  390. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  391. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  392. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  393. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -179
  394. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  395. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -192
  396. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  397. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -213
  398. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  399. package/artifacts/contracts/components/Product.sol/Product.json +0 -231
  400. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  401. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  402. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  403. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  404. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  405. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  406. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  407. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  408. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  409. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  410. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  411. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  412. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  413. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  414. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  416. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  417. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  418. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  419. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  420. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  421. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  422. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  423. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  424. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  425. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  426. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  427. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  428. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  429. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  430. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  431. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  432. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  433. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -327
  434. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  435. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -147
  436. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  437. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  438. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -179
  439. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  440. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -245
  441. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  442. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -94
  443. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  444. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  445. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  446. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  447. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -231
  448. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  449. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -231
  450. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  451. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  452. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -149
  453. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  454. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  455. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  456. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  457. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -114
  458. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  459. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  460. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  461. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -167
  462. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  463. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  464. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  465. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  466. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  467. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  468. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  469. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  470. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  471. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  472. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  474. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  476. package/contracts/components/Component.sol +0 -62
  477. package/contracts/components/IPool.sol +0 -9
  478. package/contracts/components/IProduct.sol +0 -12
  479. package/contracts/components/Pool.sol +0 -29
  480. package/contracts/components/Product.sol +0 -66
  481. package/contracts/experiment/errors/Require.sol +0 -33
  482. package/contracts/experiment/errors/Revert.sol +0 -39
  483. package/contracts/experiment/inheritance/A.sol +0 -56
  484. package/contracts/experiment/inheritance/B.sol +0 -23
  485. package/contracts/experiment/inheritance/C.sol +0 -28
  486. package/contracts/experiment/inheritance/IA.sol +0 -18
  487. package/contracts/experiment/inheritance/IB.sol +0 -9
  488. package/contracts/experiment/inheritance/IC.sol +0 -11
  489. package/contracts/experiment/types/TypeA.sol +0 -42
  490. package/contracts/experiment/types/TypeB.sol +0 -24
  491. package/contracts/instance/access/Access.sol +0 -218
  492. package/contracts/instance/access/IAccess.sol +0 -83
  493. package/contracts/instance/component/ComponentModule.sol +0 -248
  494. package/contracts/instance/component/IComponent.sol +0 -95
  495. package/contracts/instance/policy/IPolicy.sol +0 -66
  496. package/contracts/instance/policy/PolicyModule.sol +0 -107
  497. package/contracts/instance/pool/IPoolModule.sol +0 -41
  498. package/contracts/instance/pool/PoolModule.sol +0 -86
  499. package/contracts/instance/product/IProductService.sol +0 -46
  500. package/contracts/instance/product/ProductService.sol +0 -108
  501. package/contracts/registry/IChainNft.sol +0 -18
  502. package/contracts/types/ChainId.sol +0 -30
  503. package/contracts/types/NftId.sol +0 -35
@@ -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
+ }
@@ -0,0 +1,81 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Seconds is uint40;
5
+
6
+ using {
7
+ SecondsEq as ==,
8
+ SecondsGt as >,
9
+ SecondsLib.eqz,
10
+ SecondsLib.gtz,
11
+ SecondsLib.toInt
12
+ } for Seconds global;
13
+
14
+ function SecondsEq(Seconds duration1, Seconds duration2) pure returns (bool) {
15
+ return SecondsLib.eq(duration1, duration2);
16
+ }
17
+
18
+ function SecondsGt(Seconds duration1, Seconds duration2) pure returns (bool) {
19
+ return SecondsLib.gt(duration1, duration2);
20
+ }
21
+
22
+ library SecondsLib {
23
+
24
+ error ErrorSecondsLibDurationTooBig(uint256 duration);
25
+
26
+ function zero() public pure returns (Seconds) {
27
+ return Seconds.wrap(0);
28
+ }
29
+
30
+ function max() public pure returns (Seconds) {
31
+ return Seconds.wrap(_max());
32
+ }
33
+
34
+ function oneDay() public pure returns (Seconds duration) {
35
+ return Seconds.wrap(24 * 3600);
36
+ }
37
+
38
+ function oneYear() public pure returns (Seconds duration) {
39
+ return Seconds.wrap(365 * 24 * 3600);
40
+ }
41
+
42
+ /// @dev converts the uint duration into Seconds
43
+ /// function reverts if duration is exceeding max Seconds value
44
+ function toSeconds(uint256 duration) public pure returns (Seconds) {
45
+ // if(duration > type(uint40).max) {
46
+ if(duration > _max()) {
47
+ revert ErrorSecondsLibDurationTooBig(duration);
48
+ }
49
+
50
+ return Seconds.wrap(uint40(duration));
51
+ }
52
+
53
+ /// @dev return true if duration equals 0
54
+ function eqz(Seconds duration) public pure returns (bool) {
55
+ return Seconds.unwrap(duration) == 0;
56
+ }
57
+
58
+ /// @dev return true if duration is larger than 0
59
+ function gtz(Seconds duration) public pure returns (bool) {
60
+ return Seconds.unwrap(duration) > 0;
61
+ }
62
+
63
+ /// @dev return true iff duration1 and duration2 are the same
64
+ function eq(Seconds duration1, Seconds duration2) public pure returns (bool) {
65
+ return Seconds.unwrap(duration1) == Seconds.unwrap(duration2);
66
+ }
67
+
68
+ /// @dev return true if duration1 is larger than duration2
69
+ function gt(Seconds duration1, Seconds duration2) public pure returns (bool) {
70
+ return Seconds.unwrap(duration1) > Seconds.unwrap(duration2);
71
+ }
72
+
73
+ function toInt(Seconds duration) public pure returns (uint256) {
74
+ return uint256(uint40(Seconds.unwrap(duration)));
75
+ }
76
+
77
+ function _max() internal pure returns (uint40) {
78
+ // IMPORTANT: type nees to match with actual definition for Seconds
79
+ return type(uint40).max;
80
+ }
81
+ }
@@ -0,0 +1,123 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ // uint96 allows for chain ids up to 13 digits
5
+ type StateId is uint8;
6
+
7
+ // type bindings
8
+ using {
9
+ eqStateId as ==,
10
+ neStateId as !=,
11
+ StateIdLib.eqz,
12
+ StateIdLib.gtz,
13
+ StateIdLib.toInt
14
+ } for StateId global;
15
+
16
+ // general pure free functions
17
+
18
+ function INITIAL() pure returns (StateId) {
19
+ return toStateId(1);
20
+ }
21
+
22
+ function SCHEDULED() pure returns (StateId) {
23
+ return toStateId(2);
24
+ }
25
+
26
+ function DEPLOYING() pure returns (StateId) {
27
+ return toStateId(3);
28
+ }
29
+
30
+ function ACTIVE() pure returns (StateId) {
31
+ return toStateId(4);
32
+ }
33
+
34
+ function APPLIED() pure returns (StateId) {
35
+ return toStateId(10);
36
+ }
37
+
38
+ function REVOKED() pure returns (StateId) {
39
+ return toStateId(20);
40
+ }
41
+
42
+ function DECLINED() pure returns (StateId) {
43
+ return toStateId(30);
44
+ }
45
+
46
+ function COLLATERALIZED() pure returns (StateId) {
47
+ return toStateId(40);
48
+ }
49
+
50
+ function SUBMITTED() pure returns (StateId) {
51
+ return toStateId(50);
52
+ }
53
+
54
+ function CONFIRMED() pure returns (StateId) {
55
+ return toStateId(51);
56
+ }
57
+
58
+ function EXPECTED() pure returns (StateId) {
59
+ return toStateId(60);
60
+ }
61
+
62
+ function PAUSED() pure returns (StateId) {
63
+ return toStateId(110);
64
+ }
65
+
66
+ function CLOSED() pure returns (StateId) {
67
+ return toStateId(200);
68
+ }
69
+
70
+ function ARCHIVED() pure returns (StateId) {
71
+ return toStateId(210);
72
+ }
73
+
74
+ function PAID() pure returns (StateId) {
75
+ return toStateId(220);
76
+ }
77
+
78
+ function KEEP_STATE() pure returns (StateId) {
79
+ return toStateId(type(uint8).max);
80
+ }
81
+
82
+ /// @dev Converts the uint8 to a StateId.
83
+ function toStateId(uint256 id) pure returns (StateId) {
84
+ return StateId.wrap(uint8(id));
85
+ }
86
+
87
+ // TODO move to StateIdLib and rename to zero()
88
+ /// @dev Return the StateId zero (0)
89
+ function zeroStateId() pure returns (StateId) {
90
+ return StateId.wrap(0);
91
+ }
92
+
93
+ // pure free functions for operators
94
+ function eqStateId(StateId a, StateId b) pure returns (bool isSame) {
95
+ return StateId.unwrap(a) == StateId.unwrap(b);
96
+ }
97
+
98
+ function neStateId(StateId a, StateId b) pure returns (bool isDifferent) {
99
+ return StateId.unwrap(a) != StateId.unwrap(b);
100
+ }
101
+
102
+ // library functions that operate on user defined type
103
+ library StateIdLib {
104
+ /// @dev Converts the NftId to a uint256.
105
+ function toInt(StateId stateId) public pure returns (uint96) {
106
+ return uint96(StateId.unwrap(stateId));
107
+ }
108
+
109
+ /// @dev Returns true if the value is non-zero (> 0).
110
+ function gtz(StateId a) public pure returns (bool) {
111
+ return StateId.unwrap(a) > 0;
112
+ }
113
+
114
+ /// @dev Returns true if the value is zero (== 0).
115
+ function eqz(StateId a) public pure returns (bool) {
116
+ return StateId.unwrap(a) == 0;
117
+ }
118
+
119
+ /// @dev Returns true if the values are equal (==).
120
+ function eq(StateId a, StateId b) public pure returns (bool isSame) {
121
+ return eqStateId(a, b);
122
+ }
123
+ }
@@ -0,0 +1,132 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Seconds} from "./Seconds.sol";
5
+
6
+ type Timestamp is uint40;
7
+
8
+ using {
9
+ gtTimestamp as >,
10
+ gteTimestamp as >=,
11
+ ltTimestamp as <,
12
+ lteTimestamp as <=,
13
+ eqTimestamp as ==,
14
+ neTimestamp as !=,
15
+ TimestampLib.gtz,
16
+ TimestampLib.eqz,
17
+ TimestampLib.addSeconds,
18
+ TimestampLib.toInt
19
+ } for Timestamp global;
20
+
21
+ /// @dev return true if Timestamp a is after Timestamp b
22
+ function gtTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
23
+ return Timestamp.unwrap(a) > Timestamp.unwrap(b);
24
+ }
25
+
26
+ /// @dev return true if Timestamp a is after or equal to Timestamp b
27
+ function gteTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
28
+ return Timestamp.unwrap(a) >= Timestamp.unwrap(b);
29
+ }
30
+
31
+ /// @dev return true if Timestamp a is before Timestamp b
32
+ function ltTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
33
+ return Timestamp.unwrap(a) < Timestamp.unwrap(b);
34
+ }
35
+
36
+ /// @dev return true if Timestamp a is before or equal to Timestamp b
37
+ function lteTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
38
+ return Timestamp.unwrap(a) <= Timestamp.unwrap(b);
39
+ }
40
+
41
+ /// @dev return true if Timestamp a is equal to Timestamp b
42
+ function eqTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
43
+ return Timestamp.unwrap(a) == Timestamp.unwrap(b);
44
+ }
45
+
46
+ /// @dev return true if Timestamp a is not equal to Timestamp b
47
+ function neTimestamp(Timestamp a, Timestamp b) pure returns (bool) {
48
+ return Timestamp.unwrap(a) != Timestamp.unwrap(b);
49
+ }
50
+
51
+ /// @dev Converts the uint256 to a Timestamp.
52
+ function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
53
+ return Timestamp.wrap(uint40(timestamp));
54
+ }
55
+
56
+ // TODO move to TimestampLib and rename to zero()
57
+ /// @dev Return the Timestamp zero (0)
58
+ function zeroTimestamp() pure returns (Timestamp) {
59
+ return toTimestamp(0);
60
+ }
61
+
62
+ library TimestampLib {
63
+
64
+ function zero() public pure returns (Timestamp) {
65
+ return toTimestamp(0);
66
+ }
67
+
68
+ function blockTimestamp() public view returns (Timestamp) {
69
+ return Timestamp.wrap(uint40(block.timestamp));
70
+ }
71
+
72
+ /// @dev return true if Timestamp a is after Timestamp b
73
+ function gt(Timestamp a, Timestamp b) public pure returns (bool isAfter) {
74
+ return gtTimestamp(a, b);
75
+ }
76
+
77
+ /// @dev return true if Timestamp a is after or the same than Timestamp b
78
+ function gte(
79
+ Timestamp a,
80
+ Timestamp b
81
+ ) public pure returns (bool isAfterOrSame) {
82
+ return gteTimestamp(a, b);
83
+ }
84
+
85
+ /// @dev return true if Timestamp a is before Timestamp b
86
+ function lt(Timestamp a, Timestamp b) public pure returns (bool isBefore) {
87
+ return ltTimestamp(a, b);
88
+ }
89
+
90
+ /// @dev return true if Timestamp a is before or the same than Timestamp b
91
+ function lte(
92
+ Timestamp a,
93
+ Timestamp b
94
+ ) public pure returns (bool isBeforeOrSame) {
95
+ return lteTimestamp(a, b);
96
+ }
97
+
98
+ /// @dev return true if Timestamp a is equal to Timestamp b
99
+ function eq(Timestamp a, Timestamp b) public pure returns (bool isSame) {
100
+ return eqTimestamp(a, b);
101
+ }
102
+
103
+ /// @dev return true if Timestamp a is not equal to Timestamp b
104
+ function ne(
105
+ Timestamp a,
106
+ Timestamp b
107
+ ) public pure returns (bool isDifferent) {
108
+ return neTimestamp(a, b);
109
+ }
110
+
111
+ /// @dev return true if Timestamp equals 0
112
+ function eqz(Timestamp timestamp) public pure returns (bool) {
113
+ return Timestamp.unwrap(timestamp) == 0;
114
+ }
115
+
116
+ /// @dev return true if Timestamp is larger than 0
117
+ function gtz(Timestamp timestamp) public pure returns (bool) {
118
+ return Timestamp.unwrap(timestamp) > 0;
119
+ }
120
+
121
+ /// @dev return true if Timestamp a is not equal to Timestamp b
122
+ function addSeconds(
123
+ Timestamp timestamp,
124
+ Seconds duration
125
+ ) public pure returns (Timestamp) {
126
+ return toTimestamp(Timestamp.unwrap(timestamp) + duration.toInt());
127
+ }
128
+
129
+ function toInt(Timestamp timestamp) public pure returns (uint256) {
130
+ return uint256(uint40(Timestamp.unwrap(timestamp)));
131
+ }
132
+ }