@etherisc/gif-next 0.0.2-979c9aa-391 → 0.0.2-989147f-853

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 (507) hide show
  1. package/README.md +8 -13
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +819 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +73 -83
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +275 -1359
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +289 -214
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +441 -2539
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +472 -181
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +432 -280
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +427 -471
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +316 -145
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2847 -0
  32. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  33. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  36. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +93 -14
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  42. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +59 -65
  45. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  48. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  50. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  52. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  54. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  56. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +735 -0
  57. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  58. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +329 -263
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  60. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  62. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  64. package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  66. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  68. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +747 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  70. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  72. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +687 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  74. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1386 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  76. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  78. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +231 -204
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  80. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  82. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +277 -290
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  84. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +254 -243
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  86. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +861 -0
  87. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  88. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +85 -179
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  90. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  92. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +779 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  94. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +727 -0
  97. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  98. package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  100. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +679 -0
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  104. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  106. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +283 -131
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  108. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +268 -255
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  111. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/Registry.sol/Registry.json +302 -231
  113. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  114. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +238 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +313 -354
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +322 -138
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  120. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +846 -0
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +132 -57
  123. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  124. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  125. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  126. package/artifacts/contracts/shared/Component.sol/Component.json +873 -0
  127. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  128. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +631 -0
  129. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  130. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  131. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  132. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IComponent.sol/IComponent.json} +249 -82
  133. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
  135. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  136. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  137. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  138. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
  139. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  140. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  141. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  142. package/artifacts/contracts/shared/IService.sol/IService.json +84 -178
  143. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  145. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  146. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +109 -29
  147. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  148. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  149. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
  151. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -53
  153. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  154. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  155. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  156. package/artifacts/contracts/shared/Service.sol/Service.json +185 -165
  157. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  158. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  159. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  160. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  161. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  162. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  163. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  164. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → staking/IStakingService.sol/IStakingService.json} +209 -207
  165. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  166. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  167. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  168. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +667 -0
  169. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  170. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  171. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  172. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  173. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  174. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  175. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  176. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  177. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  178. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  179. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  180. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  181. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  182. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  183. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  184. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
  185. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  186. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  187. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  188. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  189. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  190. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  191. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  192. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  193. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  194. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  195. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  196. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  197. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  198. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
  199. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  200. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  201. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  202. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  203. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  204. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  205. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  206. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  207. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  208. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  209. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  211. package/contracts/distribution/Distribution.sol +285 -0
  212. package/contracts/distribution/DistributionService.sol +351 -0
  213. package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +20 -20
  214. package/contracts/distribution/IDistributionComponent.sol +71 -0
  215. package/contracts/distribution/IDistributionService.sol +87 -0
  216. package/contracts/instance/BundleManager.sol +22 -25
  217. package/contracts/instance/IInstance.sol +56 -41
  218. package/contracts/instance/IInstanceService.sol +51 -16
  219. package/contracts/instance/Instance.sol +149 -196
  220. package/contracts/instance/InstanceAccessManager.sol +406 -167
  221. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  222. package/contracts/instance/InstanceReader.sol +102 -49
  223. package/contracts/instance/InstanceService.sol +214 -207
  224. package/contracts/instance/InstanceServiceManager.sol +15 -15
  225. package/contracts/instance/InstanceStore.sol +211 -0
  226. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  227. package/contracts/instance/base/IKeyValueStore.sol +14 -10
  228. package/contracts/instance/base/ILifecycle.sol +3 -3
  229. package/contracts/instance/base/KeyValueStore.sol +44 -47
  230. package/contracts/instance/base/Lifecycle.sol +28 -7
  231. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +16 -35
  232. package/contracts/instance/module/IAccess.sol +25 -19
  233. package/contracts/instance/module/IBundle.sol +11 -8
  234. package/contracts/instance/module/IComponents.sol +41 -0
  235. package/contracts/instance/module/IDistribution.sol +7 -4
  236. package/contracts/instance/module/IPolicy.sol +50 -17
  237. package/contracts/instance/module/IRisk.sol +1 -1
  238. package/contracts/instance/module/ISetup.sol +9 -22
  239. package/contracts/instance/module/ITreasury.sol +2 -2
  240. package/contracts/pool/BundleService.sol +384 -0
  241. package/contracts/{instance/service → pool}/BundleServiceManager.sol +19 -19
  242. package/contracts/pool/IBundleService.sol +118 -0
  243. package/contracts/pool/IPoolComponent.sol +114 -0
  244. package/contracts/pool/IPoolService.sol +114 -0
  245. package/contracts/pool/Pool.sol +302 -0
  246. package/contracts/pool/PoolService.sol +416 -0
  247. package/contracts/{instance/service → pool}/PoolServiceManager.sol +19 -19
  248. package/contracts/product/ApplicationService.sol +187 -0
  249. package/contracts/product/ApplicationServiceManager.sol +38 -0
  250. package/contracts/product/ClaimService.sol +443 -0
  251. package/contracts/product/ClaimServiceManager.sol +38 -0
  252. package/contracts/product/IApplicationService.sol +62 -0
  253. package/contracts/product/IClaimService.sol +93 -0
  254. package/contracts/product/IPolicyService.sol +80 -0
  255. package/contracts/product/IPricingService.sol +37 -0
  256. package/contracts/product/IProductComponent.sol +41 -0
  257. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  258. package/contracts/product/PolicyService.sol +378 -0
  259. package/contracts/{instance/service → product}/PolicyServiceManager.sol +16 -13
  260. package/contracts/product/PricingService.sol +276 -0
  261. package/contracts/product/PricingServiceManager.sol +42 -0
  262. package/contracts/product/Product.sol +379 -0
  263. package/contracts/product/ProductService.sol +212 -0
  264. package/contracts/{instance/service → product}/ProductServiceManager.sol +16 -13
  265. package/contracts/registry/ChainNft.sol +9 -1
  266. package/contracts/registry/IRegistry.sol +52 -27
  267. package/contracts/registry/IRegistryService.sol +36 -28
  268. package/contracts/registry/ITransferInterceptor.sol +1 -0
  269. package/contracts/registry/Registry.sol +253 -234
  270. package/contracts/registry/RegistryAccessManager.sol +132 -0
  271. package/contracts/registry/RegistryService.sol +81 -208
  272. package/contracts/registry/RegistryServiceManager.sol +34 -42
  273. package/contracts/registry/ReleaseManager.sol +380 -0
  274. package/contracts/registry/TokenRegistry.sol +22 -17
  275. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  276. package/contracts/shared/Component.sol +271 -0
  277. package/contracts/shared/ComponentService.sol +141 -0
  278. package/contracts/shared/ERC165.sol +14 -12
  279. package/contracts/shared/IComponent.sol +90 -0
  280. package/contracts/shared/INftOwnable.sol +12 -11
  281. package/contracts/shared/IPolicyHolder.sol +40 -0
  282. package/contracts/shared/IRegisterable.sol +4 -6
  283. package/contracts/shared/IRegistryLinked.sol +11 -0
  284. package/contracts/shared/IService.sol +7 -4
  285. package/contracts/shared/IVersionable.sol +5 -48
  286. package/contracts/shared/NftOwnable.sol +64 -80
  287. package/contracts/shared/PolicyHolder.sol +94 -0
  288. package/contracts/shared/ProxyManager.sol +126 -25
  289. package/contracts/shared/Registerable.sol +26 -41
  290. package/contracts/shared/RegistryLinked.sol +43 -0
  291. package/contracts/shared/Service.sol +41 -24
  292. package/contracts/shared/TokenHandler.sol +14 -6
  293. package/contracts/shared/Versionable.sol +4 -92
  294. package/contracts/staking/IStakingService.sol +102 -0
  295. package/contracts/staking/StakingService.sol +169 -0
  296. package/contracts/staking/StakingServiceManager.sol +40 -0
  297. package/contracts/type/Amount.sol +109 -0
  298. package/contracts/{types → type}/Blocknumber.sol +1 -0
  299. package/contracts/type/ClaimId.sol +75 -0
  300. package/contracts/{types → type}/DistributorType.sol +2 -2
  301. package/contracts/{types → type}/Fee.sol +17 -8
  302. package/contracts/{types → type}/NftId.sol +8 -0
  303. package/contracts/{types → type}/NftIdSet.sol +1 -1
  304. package/contracts/{types → type}/ObjectType.sol +17 -7
  305. package/contracts/type/PayoutId.sol +82 -0
  306. package/contracts/{types → type}/Referral.sol +4 -0
  307. package/contracts/type/RoleId.sol +139 -0
  308. package/contracts/type/Seconds.sol +54 -0
  309. package/contracts/{types → type}/StateId.sol +7 -2
  310. package/contracts/{types → type}/Timestamp.sol +18 -13
  311. package/contracts/{types → type}/UFixed.sol +1 -0
  312. package/contracts/{types → type}/Version.sol +1 -0
  313. package/package.json +3 -3
  314. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  315. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  316. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -772
  317. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  318. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -384
  319. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  320. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  321. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  322. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  323. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  324. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  325. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  326. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -967
  327. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  328. package/artifacts/contracts/components/Product.sol/Product.json +0 -883
  329. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  330. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  331. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  332. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  333. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  334. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  335. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  336. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  337. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  338. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  339. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  340. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  341. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  342. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  343. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  344. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  345. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  346. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  347. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  348. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  349. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  350. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  351. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  352. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  353. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  354. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  355. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  356. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  357. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  358. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  359. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  360. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  361. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  362. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  363. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  364. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  365. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  366. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  367. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  368. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  369. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  370. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  371. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  372. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +0 -448
  373. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  374. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  375. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  376. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  377. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  378. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  379. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  380. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  381. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  382. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  383. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
  384. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  385. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  386. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  387. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -684
  388. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  389. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  390. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  391. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  392. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  393. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  394. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  395. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  396. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  397. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  398. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -984
  399. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  400. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  401. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  402. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -718
  403. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  404. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
  405. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  406. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -768
  407. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  408. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  409. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  410. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  411. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  412. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  413. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  414. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  415. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  416. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  417. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  418. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  419. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  420. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  421. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  422. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  423. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  424. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  425. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  426. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  427. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  428. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  429. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  430. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  431. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  432. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  433. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  434. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  435. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  436. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  437. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  438. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  439. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  440. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  441. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  442. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  443. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  444. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  445. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  446. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  447. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  448. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  449. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  451. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  452. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  453. package/contracts/components/BaseComponent.sol +0 -148
  454. package/contracts/components/Distribution.sol +0 -163
  455. package/contracts/components/IBaseComponent.sol +0 -32
  456. package/contracts/components/IDistributionComponent.sol +0 -44
  457. package/contracts/components/IPoolComponent.sol +0 -66
  458. package/contracts/components/IProductComponent.sol +0 -35
  459. package/contracts/components/Pool.sol +0 -271
  460. package/contracts/components/Product.sol +0 -292
  461. package/contracts/experiment/cloning/Cloner.sol +0 -47
  462. package/contracts/experiment/errors/Require.sol +0 -38
  463. package/contracts/experiment/errors/Revert.sol +0 -44
  464. package/contracts/experiment/inheritance/A.sol +0 -53
  465. package/contracts/experiment/inheritance/B.sol +0 -28
  466. package/contracts/experiment/inheritance/C.sol +0 -34
  467. package/contracts/experiment/inheritance/IA.sol +0 -13
  468. package/contracts/experiment/inheritance/IB.sol +0 -10
  469. package/contracts/experiment/inheritance/IC.sol +0 -12
  470. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  471. package/contracts/experiment/statemachine/ISM.sol +0 -25
  472. package/contracts/experiment/statemachine/SM.sol +0 -57
  473. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  474. package/contracts/experiment/types/TypeA.sol +0 -47
  475. package/contracts/experiment/types/TypeB.sol +0 -29
  476. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  477. package/contracts/instance/IInstanceBase.sol +0 -26
  478. package/contracts/instance/InstanceBase.sol +0 -41
  479. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  480. package/contracts/instance/base/IInstanceBase.sol +0 -23
  481. package/contracts/instance/service/BundleService.sol +0 -260
  482. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  483. package/contracts/instance/service/DistributionService.sol +0 -118
  484. package/contracts/instance/service/IBundleService.sol +0 -45
  485. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  486. package/contracts/instance/service/IDistributionService.sol +0 -12
  487. package/contracts/instance/service/IPolicyService.sol +0 -87
  488. package/contracts/instance/service/IPoolService.sol +0 -20
  489. package/contracts/instance/service/PolicyService.sol +0 -508
  490. package/contracts/instance/service/PoolService.sol +0 -124
  491. package/contracts/instance/service/ProductService.sol +0 -173
  492. package/contracts/shared/ContractDeployerLib.sol +0 -72
  493. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  494. package/contracts/test/TestFee.sol +0 -25
  495. package/contracts/test/TestRegisterable.sol +0 -18
  496. package/contracts/test/TestRoleId.sol +0 -14
  497. package/contracts/test/TestService.sol +0 -24
  498. package/contracts/test/TestToken.sol +0 -26
  499. package/contracts/test/TestVersion.sol +0 -44
  500. package/contracts/test/TestVersionable.sol +0 -17
  501. package/contracts/test/Usdc.sol +0 -26
  502. package/contracts/types/ChainId.sol +0 -38
  503. package/contracts/types/NumberId.sol +0 -52
  504. package/contracts/types/RoleId.sol +0 -91
  505. /package/contracts/{types → type}/AddressSet.sol +0 -0
  506. /package/contracts/{types → type}/Key32.sol +0 -0
  507. /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -0,0 +1,139 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.19;
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
+ /// @dev role for creating gif target on instance service
65
+ function CAN_CREATE_GIF_TARGET_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(1700); }
66
+
67
+ /// @dev instance specific role for distribution service
68
+ function DISTRIBUTION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2100); }
69
+
70
+ /// @dev instance specific role for pool service
71
+ function POOL_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2200); }
72
+
73
+ /// @dev instance specific role for product service
74
+ function PRODUCT_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2300); }
75
+
76
+ /// @dev instance specific role for application service
77
+ function APPLICATION_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2400); }
78
+
79
+ /// @dev instance specific role for policy service
80
+ function POLICY_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2410); }
81
+
82
+ /// @dev instance specific role for claim service
83
+ function CLAIM_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2420); }
84
+
85
+ /// @dev instance specific role for bundle service
86
+ function BUNDLE_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2500); }
87
+
88
+ /// @dev instance specific role for pricing service
89
+ function PRICING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2800); }
90
+
91
+ /// @dev instance specific role for staking service
92
+ function STAKING_SERVICE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2900); }
93
+
94
+ // @dev Returns true iff role ids a and b are identical
95
+ function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
96
+ return RoleId.unwrap(a) == RoleId.unwrap(b);
97
+ }
98
+
99
+ // @dev Returns true iff role ids a and b are different
100
+ function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
101
+ return RoleId.unwrap(a) != RoleId.unwrap(b);
102
+ }
103
+
104
+ library RoleIdLib {
105
+ /// @dev Converts the RoleId to a uint.
106
+ function zero() public pure returns (RoleId) {
107
+ return RoleId.wrap(0);
108
+ }
109
+
110
+ /// @dev Converts an uint into a RoleId.
111
+ function toRoleId(uint256 a) public pure returns (RoleId) {
112
+ return RoleId.wrap(uint64(a));
113
+ }
114
+
115
+ /// @dev Converts the RoleId to a uint.
116
+ function toInt(RoleId a) public pure returns (uint64) {
117
+ return uint64(RoleId.unwrap(a));
118
+ }
119
+
120
+ /// @dev Returns true if the value is non-zero (> 0).
121
+ function gtz(RoleId a) public pure returns (bool) {
122
+ return RoleId.unwrap(a) > 0;
123
+ }
124
+
125
+ /// @dev Returns true if the value is zero (== 0).
126
+ function eqz(RoleId a) public pure returns (bool) {
127
+ return RoleId.unwrap(a) == 0;
128
+ }
129
+
130
+ /// @dev Returns the key32 value for the specified id and object type.
131
+ function toKey32(RoleId a) public pure returns (Key32 key) {
132
+ return Key32Lib.toKey32(ROLE(), toKeyId(a));
133
+ }
134
+
135
+ /// @dev Returns the key id value for the specified id
136
+ function toKeyId(RoleId a) public pure returns (KeyId keyId) {
137
+ return KeyId.wrap(bytes31(uint248(RoleId.unwrap(a))));
138
+ }
139
+ }
@@ -0,0 +1,54 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ type Seconds is uint40;
5
+
6
+ using {
7
+ SecondsLib.eqz,
8
+ SecondsLib.gtz,
9
+ SecondsLib.toInt
10
+ } for Seconds global;
11
+
12
+
13
+ library SecondsLib {
14
+
15
+ error ErrorSecondsLibDurationTooBig(uint256 duration);
16
+
17
+ function zero() public pure returns (Seconds) {
18
+ return Seconds.wrap(0);
19
+ }
20
+
21
+ function max() public pure returns (Seconds) {
22
+ return Seconds.wrap(_max());
23
+ }
24
+
25
+ /// @dev converts the uint duration into Seconds
26
+ /// function reverts if duration is exceeding max Seconds value
27
+ function toSeconds(uint256 duration) public pure returns (Seconds) {
28
+ // if(duration > type(uint40).max) {
29
+ if(duration > _max()) {
30
+ revert ErrorSecondsLibDurationTooBig(duration);
31
+ }
32
+
33
+ return Seconds.wrap(uint40(duration));
34
+ }
35
+
36
+ /// @dev return true if duration equals 0
37
+ function eqz(Seconds duration) public pure returns (bool) {
38
+ return Seconds.unwrap(duration) == 0;
39
+ }
40
+
41
+ /// @dev return true if duration is larger than 0
42
+ function gtz(Seconds duration) public pure returns (bool) {
43
+ return Seconds.unwrap(duration) > 0;
44
+ }
45
+
46
+ function toInt(Seconds duration) public pure returns (uint256) {
47
+ return uint256(uint40(Seconds.unwrap(duration)));
48
+ }
49
+
50
+ function _max() internal pure returns (uint40) {
51
+ // IMPORTANT: type nees to match with actual definition for Seconds
52
+ return type(uint40).max;
53
+ }
54
+ }
@@ -26,14 +26,18 @@ function DECLINED() pure returns (StateId) {
26
26
  return toStateId(30);
27
27
  }
28
28
 
29
- function UNDERWRITTEN() pure returns (StateId) {
29
+ function COLLATERALIZED() pure returns (StateId) {
30
30
  return toStateId(40);
31
31
  }
32
32
 
33
- function CONFIRMED() pure returns (StateId) {
33
+ function SUBMITTED() pure returns (StateId) {
34
34
  return toStateId(50);
35
35
  }
36
36
 
37
+ function CONFIRMED() pure returns (StateId) {
38
+ return toStateId(51);
39
+ }
40
+
37
41
  function EXPECTED() pure returns (StateId) {
38
42
  return toStateId(60);
39
43
  }
@@ -67,6 +71,7 @@ function toStateId(uint256 id) pure returns (StateId) {
67
71
  return StateId.wrap(uint8(id));
68
72
  }
69
73
 
74
+ // TODO move to StateIdLib and rename to zero()
70
75
  /// @dev Return the StateId zero (0)
71
76
  function zeroStateId() pure returns (StateId) {
72
77
  return StateId.wrap(0);
@@ -1,5 +1,7 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Seconds} from "./Seconds.sol";
3
5
 
4
6
  type Timestamp is uint40;
5
7
 
@@ -12,7 +14,8 @@ using {
12
14
  neTimestamp as !=,
13
15
  TimestampLib.gtz,
14
16
  TimestampLib.eqz,
15
- TimestampLib.addSeconds
17
+ TimestampLib.addSeconds,
18
+ TimestampLib.toInt
16
19
  } for Timestamp global;
17
20
 
18
21
  /// @dev return true if Timestamp a is after Timestamp b
@@ -50,16 +53,18 @@ function toTimestamp(uint256 timestamp) pure returns (Timestamp) {
50
53
  return Timestamp.wrap(uint40(timestamp));
51
54
  }
52
55
 
53
- // function blockTimestamp() view returns (Timestamp) {
54
- // return toTimestamp(block.timestamp);
55
- // }
56
-
56
+ // TODO move to TimestampLib and rename to zero()
57
57
  /// @dev Return the Timestamp zero (0)
58
58
  function zeroTimestamp() pure returns (Timestamp) {
59
59
  return toTimestamp(0);
60
60
  }
61
61
 
62
62
  library TimestampLib {
63
+
64
+ function zero() public pure returns (Timestamp) {
65
+ return toTimestamp(0);
66
+ }
67
+
63
68
  function blockTimestamp() public view returns (Timestamp) {
64
69
  return Timestamp.wrap(uint40(block.timestamp));
65
70
  }
@@ -103,22 +108,22 @@ library TimestampLib {
103
108
  return neTimestamp(a, b);
104
109
  }
105
110
 
106
- /// @dev return true if Timestamp is larger than 0
107
- function gtz(Timestamp timestamp) public pure returns (bool) {
108
- return Timestamp.unwrap(timestamp) > 0;
109
- }
110
-
111
111
  /// @dev return true if Timestamp equals 0
112
112
  function eqz(Timestamp timestamp) public pure returns (bool) {
113
113
  return Timestamp.unwrap(timestamp) == 0;
114
114
  }
115
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
+
116
121
  /// @dev return true if Timestamp a is not equal to Timestamp b
117
122
  function addSeconds(
118
123
  Timestamp timestamp,
119
- uint256 timeDelta
124
+ Seconds duration
120
125
  ) public pure returns (Timestamp) {
121
- return toTimestamp(Timestamp.unwrap(timestamp) + uint40(timeDelta));
126
+ return toTimestamp(Timestamp.unwrap(timestamp) + duration.toInt());
122
127
  }
123
128
 
124
129
  function toInt(Timestamp timestamp) public pure returns (uint256) {
@@ -19,6 +19,7 @@ using {
19
19
  UFixedLib.gtz
20
20
  } for UFixed global;
21
21
 
22
+ // TODO move to UFixedLib and rename to zero()
22
23
  function zeroUFixed() pure returns (UFixed zero) {
23
24
  return UFixed.wrap(0);
24
25
  }
@@ -101,6 +101,7 @@ library VersionLib {
101
101
  return Version.wrap(uint24(versionNumber));
102
102
  }
103
103
 
104
+ // TODO rename to zero()
104
105
  function zeroVersion() external pure returns(Version) {
105
106
  return Version.wrap(0);
106
107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-979c9aa-391",
3
+ "version": "0.0.2-989147f-853",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -32,8 +32,8 @@
32
32
  "@nomicfoundation/hardhat-foundry": "^1.1.1",
33
33
  "@nomicfoundation/hardhat-toolbox": "^3.0.0",
34
34
  "@nomicfoundation/hardhat-verify": "^1.1.1",
35
- "@typescript-eslint/eslint-plugin": "^6.7.2",
36
- "@typescript-eslint/parser": "^6.7.2",
35
+ "@typescript-eslint/eslint-plugin": "^7.1.0",
36
+ "@typescript-eslint/parser": "^7.1.0",
37
37
  "dotenv": "^16.3.1",
38
38
  "eslint": "^8.50.0",
39
39
  "hardhat": "^2.17.2",
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/b4fb5b14ad29a521dbaaa343fa245e81.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/b4fb5b14ad29a521dbaaa343fa245e81.json"
4
- }