@etherisc/gif-next 0.0.2-7ca6cd9-950 → 0.0.2-7dc3cd3-858

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 (375) hide show
  1. package/README.md +18 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  12. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  16. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +140 -95
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +48 -40
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -108
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +59 -79
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +142 -40
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +73 -141
  44. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +205 -103
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -32
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -123
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  62. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  63. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -78
  64. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  70. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  71. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  72. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  73. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  74. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  75. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  76. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  77. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  79. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -0
  81. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  83. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +66 -29
  85. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +27 -15
  87. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  88. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  89. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  90. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  91. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  92. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +78 -49
  93. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  94. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -25
  95. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  97. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  98. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  99. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +13 -0
  101. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  102. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  103. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  104. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -41
  105. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +25 -21
  107. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  108. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -37
  109. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +27 -19
  111. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  112. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  113. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  114. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  115. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  116. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -69
  117. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +47 -35
  119. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  120. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  121. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  122. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  123. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  124. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  125. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  126. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  127. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  128. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  129. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  130. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  131. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  132. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +84 -47
  133. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  134. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +36 -24
  135. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  136. package/artifacts/contracts/product/PricingService.sol/PricingService.json +92 -63
  137. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +40 -32
  139. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  140. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  141. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  142. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  143. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  144. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +21 -13
  145. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  146. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  147. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
  148. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  149. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -0
  150. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  151. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/Registry.sol/Registry.json +20 -64
  153. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  154. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1487 -153
  155. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  156. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -14
  157. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  158. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +20 -8
  159. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  160. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +93 -245
  161. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  162. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -0
  163. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  164. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  165. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  166. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +82 -85
  168. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  169. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +35 -43
  170. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  171. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  172. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +13 -0
  176. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  178. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  179. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  180. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  184. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  185. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  186. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  187. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  188. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  189. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  190. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  191. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +2 -2
  192. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  193. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +2 -2
  194. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +2 -2
  196. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  198. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  199. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  200. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  201. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  202. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  204. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  206. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  208. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  209. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  210. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  211. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  212. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  213. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  214. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
  215. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  216. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +44 -28
  217. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  218. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -84
  219. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +23 -39
  221. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  222. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  223. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  224. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
  225. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  226. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +33 -41
  227. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  228. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +186 -114
  229. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  230. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +18 -18
  231. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  232. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
  234. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  237. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  240. package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
  241. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  242. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  245. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  246. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +136 -2
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  255. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  257. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  262. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  264. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  266. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  267. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  270. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  272. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  274. package/contracts/authorization/AccessAdmin.sol +593 -0
  275. package/contracts/authorization/Authorization.sol +218 -0
  276. package/contracts/authorization/IAccess.sol +48 -0
  277. package/contracts/authorization/IAccessAdmin.sol +136 -0
  278. package/contracts/authorization/IAuthorization.sol +54 -0
  279. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  280. package/contracts/authorization/IServiceAuthorization.sol +35 -0
  281. package/contracts/authorization/InstanceAdmin.sol +108 -0
  282. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  283. package/contracts/authorization/ServiceAuthorization.sol +86 -0
  284. package/contracts/distribution/BasicDistribution.sol +149 -0
  285. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  286. package/contracts/distribution/Distribution.sol +126 -104
  287. package/contracts/distribution/DistributionService.sol +13 -9
  288. package/contracts/distribution/IDistributionComponent.sol +17 -35
  289. package/contracts/distribution/IDistributionService.sol +5 -1
  290. package/contracts/instance/IInstance.sol +13 -9
  291. package/contracts/instance/IInstanceService.sol +28 -18
  292. package/contracts/instance/Instance.sol +106 -88
  293. package/contracts/instance/InstanceAdminNew.sol +261 -0
  294. package/contracts/instance/InstanceAuthorizationV3.sol +209 -0
  295. package/contracts/instance/InstanceReader.sol +24 -9
  296. package/contracts/instance/InstanceService.sol +143 -75
  297. package/contracts/instance/InstanceStore.sol +9 -17
  298. package/contracts/instance/base/BalanceStore.sol +11 -6
  299. package/contracts/instance/base/Cloneable.sol +2 -25
  300. package/contracts/instance/base/ObjectManager.sol +7 -10
  301. package/contracts/oracle/BasicOracle.sol +48 -0
  302. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  303. package/contracts/oracle/IOracle.sol +16 -0
  304. package/contracts/oracle/Oracle.sol +61 -49
  305. package/contracts/oracle/OracleService.sol +5 -4
  306. package/contracts/pool/BasicPool.sol +164 -0
  307. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  308. package/contracts/pool/BundleService.sol +19 -19
  309. package/contracts/pool/IPoolComponent.sol +0 -60
  310. package/contracts/pool/Pool.sol +143 -131
  311. package/contracts/pool/PoolService.sol +7 -8
  312. package/contracts/product/ApplicationService.sol +5 -5
  313. package/contracts/product/BasicProduct.sol +82 -0
  314. package/contracts/product/BasicProductAuthorization.sol +40 -0
  315. package/contracts/product/ClaimService.sol +5 -5
  316. package/contracts/product/IProductComponent.sol +6 -9
  317. package/contracts/product/PolicyService.sol +5 -5
  318. package/contracts/product/PricingService.sol +4 -5
  319. package/contracts/product/Product.sol +103 -88
  320. package/contracts/product/ProductService.sol +5 -5
  321. package/contracts/registry/IRegistry.sol +5 -8
  322. package/contracts/registry/Registry.sol +6 -4
  323. package/contracts/registry/RegistryAdmin.sol +273 -147
  324. package/contracts/registry/RegistryService.sol +5 -5
  325. package/contracts/registry/RegistryServiceManager.sol +0 -5
  326. package/contracts/registry/ReleaseManager.sol +102 -184
  327. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  328. package/contracts/shared/ComponentService.sol +22 -61
  329. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  330. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  331. package/contracts/shared/IService.sol +7 -0
  332. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  333. package/contracts/shared/Service.sol +27 -21
  334. package/contracts/staking/IStakingService.sol +11 -7
  335. package/contracts/staking/StakeManagerLib.sol +52 -0
  336. package/contracts/staking/Staking.sol +58 -96
  337. package/contracts/staking/StakingService.sol +61 -56
  338. package/contracts/staking/StakingServiceManager.sol +0 -1
  339. package/contracts/staking/StakingStore.sol +79 -38
  340. package/contracts/type/ObjectType.sol +169 -62
  341. package/contracts/type/RoleId.sol +103 -75
  342. package/contracts/type/Selector.sol +102 -0
  343. package/contracts/type/String.sol +53 -0
  344. package/contracts/type/UFixed.sol +6 -0
  345. package/package.json +4 -1
  346. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
  347. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +0 -708
  348. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  349. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  350. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  351. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  352. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  353. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  354. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  355. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
  356. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  357. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
  358. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  359. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
  360. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  361. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
  362. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  363. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  364. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  365. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  366. package/contracts/instance/InstanceAdmin.sol +0 -331
  367. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  368. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  369. package/contracts/shared/AccessManagerCustom.sol +0 -736
  370. package/contracts/shared/AccessManagerExtended.sol +0 -470
  371. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  372. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  373. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  374. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  375. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -85,19 +85,34 @@ contract StakingStore is
85
85
  constructor(IRegistry registry, StakingReader reader)
86
86
  AccessManaged(msg.sender)
87
87
  {
88
+ // set final authority
89
+ setAuthority(registry.getAuthority());
90
+
91
+ // set internal variables
88
92
  _registry = registry; //TODO if keeps registry -> RegistryLinked and checks registry address
89
- address authority = _registry.getAuthority();
90
- setAuthority(authority);
91
-
92
93
  _reader = reader;
93
94
  _targetManager = new NftIdSetManager();
95
+
96
+ // register protocol target
97
+ _createTarget(
98
+ NftIdLib.toNftId(1101),
99
+ IStaking.TargetInfo({
100
+ objectType: PROTOCOL(),
101
+ chainId: 1,
102
+ lockingPeriod: TargetManagerLib.getDefaultLockingPeriod(),
103
+ rewardRate: TargetManagerLib.getDefaultRewardRate()}));
94
104
  }
95
105
 
96
106
 
97
107
  //--- staking rate specific functions -----------------------------------//
98
108
 
99
- function setStakingRate(uint256 chainId, address token, UFixed stakingRate)
109
+ function setStakingRate(
110
+ uint256 chainId,
111
+ address token,
112
+ UFixed stakingRate
113
+ )
100
114
  external
115
+ restricted()
101
116
  {
102
117
  _stakingRate[chainId][token] = stakingRate;
103
118
  }
@@ -109,16 +124,9 @@ contract StakingStore is
109
124
  IStaking.TargetInfo memory targetInfo
110
125
  )
111
126
  external
127
+ restricted()
112
128
  {
113
- _create(
114
- targetNftId.toKey32(TARGET()),
115
- abi.encode(targetInfo));
116
-
117
- // initialize tvl and stake balance
118
- _tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
119
- _createTargetBalance(targetNftId);
120
-
121
- _targetManager.add(targetNftId);
129
+ _createTarget(targetNftId, targetInfo);
122
130
  }
123
131
 
124
132
 
@@ -127,6 +135,7 @@ contract StakingStore is
127
135
  IStaking.TargetInfo memory targetInfo
128
136
  )
129
137
  external
138
+ restricted()
130
139
  {
131
140
  _update(
132
141
  targetNftId.toKey32(TARGET()),
@@ -139,6 +148,7 @@ contract StakingStore is
139
148
  Amount dipAmount
140
149
  )
141
150
  external
151
+ restricted()
142
152
  returns (Amount newReserveBalance)
143
153
  {
144
154
  newReserveBalance = _reserveBalance[targetNftId] + dipAmount;
@@ -153,6 +163,7 @@ contract StakingStore is
153
163
  Amount dipAmount
154
164
  )
155
165
  external
166
+ restricted()
156
167
  returns (Amount newReserveBalance)
157
168
  {
158
169
  Amount reserveAmount = _reserveBalance[targetNftId];
@@ -170,24 +181,6 @@ contract StakingStore is
170
181
  }
171
182
 
172
183
 
173
- function _updateReserves(
174
- NftId targetNftId,
175
- Amount newRewardBalance
176
- )
177
- internal
178
- returns (Blocknumber lastUpdatedIn)
179
- {
180
- if (_lastUpdatedIn[targetNftId].eqz()) {
181
- revert ErrorStakingStoreNotTarget(targetNftId);
182
- }
183
-
184
- lastUpdatedIn = _lastUpdatedIn[targetNftId];
185
-
186
- _reserveBalance[targetNftId] = newRewardBalance;
187
- _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
188
- }
189
-
190
-
191
184
  //--- tvl specific functions -------------------------------------//
192
185
 
193
186
  function increaseTotalValueLocked(
@@ -197,6 +190,7 @@ contract StakingStore is
197
190
  Amount amount
198
191
  )
199
192
  external
193
+ restricted()
200
194
  returns (Amount newBalance)
201
195
  {
202
196
  (
@@ -229,6 +223,7 @@ contract StakingStore is
229
223
  Amount amount
230
224
  )
231
225
  external
226
+ restricted()
232
227
  returns (Amount newBalance)
233
228
  {
234
229
  (
@@ -261,6 +256,7 @@ contract StakingStore is
261
256
  IStaking.StakeInfo memory stakeInfo
262
257
  )
263
258
  external
259
+ restricted()
264
260
  {
265
261
  _create(
266
262
  stakeNftId.toKey32(STAKE()),
@@ -274,6 +270,7 @@ contract StakingStore is
274
270
  IStaking.StakeInfo memory stakeInfo
275
271
  )
276
272
  external
273
+ restricted()
277
274
  {
278
275
  _update(
279
276
  stakeNftId.toKey32(STAKE()),
@@ -289,7 +286,8 @@ contract StakingStore is
289
286
  NftId targetNftId,
290
287
  Amount amount
291
288
  )
292
- public
289
+ external
290
+ restricted()
293
291
  {
294
292
  Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
295
293
 
@@ -313,6 +311,7 @@ contract StakingStore is
313
311
  Amount rewardIncrementAmount
314
312
  )
315
313
  external
314
+ restricted()
316
315
  {
317
316
  Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
318
317
  Amount stakeAmount = _stakeBalance[nftId];
@@ -339,6 +338,7 @@ contract StakingStore is
339
338
  Amount rewardIncrementAmount
340
339
  )
341
340
  external
341
+ restricted()
342
342
  {
343
343
  Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
344
344
 
@@ -363,6 +363,7 @@ contract StakingStore is
363
363
  Amount maxClaimAmount
364
364
  )
365
365
  external
366
+ restricted()
366
367
  returns (Amount claimedAmount)
367
368
  {
368
369
  Blocknumber lastUpdatedIn = _checkBalanceExists(nftId);
@@ -392,6 +393,7 @@ contract StakingStore is
392
393
  Amount maxClaimAmount
393
394
  )
394
395
  external
396
+ restricted()
395
397
  returns (
396
398
  Amount unstakedAmount,
397
399
  Amount claimedAmount
@@ -475,8 +477,44 @@ contract StakingStore is
475
477
 
476
478
  //--- private functions -------------------------------------------//
477
479
 
480
+ function _createTarget(
481
+ NftId targetNftId,
482
+ IStaking.TargetInfo memory targetInfo
483
+ )
484
+ private
485
+ {
486
+ _create(
487
+ targetNftId.toKey32(TARGET()),
488
+ abi.encode(targetInfo));
489
+
490
+ // initialize tvl and stake balance
491
+ _tvlLastUpdatedIn[targetNftId]= BlocknumberLib.currentBlocknumber();
492
+ _createTargetBalance(targetNftId);
493
+
494
+ _targetManager.add(targetNftId);
495
+ }
496
+
497
+ function _updateReserves(
498
+ NftId targetNftId,
499
+ Amount newRewardBalance
500
+ )
501
+ private
502
+ returns (Blocknumber lastUpdatedIn)
503
+ {
504
+ if (_lastUpdatedIn[targetNftId].eqz()) {
505
+ revert ErrorStakingStoreNotTarget(targetNftId);
506
+ }
507
+
508
+ lastUpdatedIn = _lastUpdatedIn[targetNftId];
509
+
510
+ _reserveBalance[targetNftId] = newRewardBalance;
511
+ _lastUpdatedIn[targetNftId] = BlocknumberLib.currentBlocknumber();
512
+ }
513
+
478
514
 
479
- function _createTargetBalance(NftId nftId) private {
515
+ function _createTargetBalance(NftId nftId)
516
+ private
517
+ {
480
518
  if (_lastUpdatedIn[nftId].gtz()) {
481
519
  revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
482
520
  }
@@ -492,7 +530,9 @@ contract StakingStore is
492
530
  }
493
531
 
494
532
 
495
- function _createStakeBalance(NftId nftId) private {
533
+ function _createStakeBalance(NftId nftId)
534
+ private
535
+ {
496
536
  if (_lastUpdatedIn[nftId].gtz()) {
497
537
  revert ErrorStakingStoreBalanceAlreadyInitialized(nftId);
498
538
  }
@@ -512,7 +552,7 @@ contract StakingStore is
512
552
  Amount newStakeAmount,
513
553
  Amount newRewardAmount
514
554
  )
515
- internal
555
+ private
516
556
  {
517
557
  _stakeBalance[stakeNftId] = newStakeAmount;
518
558
  _rewardBalance[stakeNftId] = newRewardAmount;
@@ -527,7 +567,7 @@ contract StakingStore is
527
567
  Amount newStakeAmount,
528
568
  Amount newRewardAmount
529
569
  )
530
- internal
570
+ private
531
571
  {
532
572
  _stakeBalance[targetNftId] = newStakeAmount;
533
573
  _rewardBalance[targetNftId] = newRewardAmount;
@@ -537,7 +577,8 @@ contract StakingStore is
537
577
  }
538
578
 
539
579
  function _checkBalanceExists(NftId nftId)
540
- internal
580
+ private
581
+ view
541
582
  returns (Blocknumber lastUpdatedIn)
542
583
  {
543
584
  lastUpdatedIn = _lastUpdatedIn[nftId];
@@ -552,7 +593,7 @@ contract StakingStore is
552
593
  NftId targetNftId,
553
594
  address token
554
595
  )
555
- internal
596
+ private
556
597
  view
557
598
  returns (
558
599
  Blocknumber tvlLastUpdatedIn,
@@ -12,140 +12,142 @@ using {
12
12
  ObjectTypeLib.gtz
13
13
  } for ObjectType global;
14
14
 
15
- // general pure free functions
16
15
 
17
- function RELEASE() pure returns (ObjectType) {
18
- return toObjectType(1);
19
- }
16
+ //--- GIF object types/domains (rage: 1 - 99) -------------------------------//
20
17
 
21
18
  function PROTOCOL() pure returns (ObjectType) {
22
- return toObjectType(10);
19
+ return ObjectType.wrap(1);
23
20
  }
24
21
 
25
- function ROLE() pure returns (ObjectType) {
26
- return toObjectType(20);
22
+ function REGISTRY() pure returns (ObjectType) {
23
+ return ObjectType.wrap(2);
27
24
  }
28
25
 
29
- function TARGET() pure returns (ObjectType) {
30
- return toObjectType(30);
26
+ function STAKING() pure returns (ObjectType) {
27
+ return ObjectType.wrap(3);
31
28
  }
32
29
 
33
- function REGISTRY() pure returns (ObjectType) {
34
- return toObjectType(40);
30
+ function TOKEN() pure returns (ObjectType) {
31
+ return ObjectType.wrap(6);
35
32
  }
36
33
 
37
- function STAKING() pure returns (ObjectType) {
38
- return toObjectType(45);
34
+ function RELEASE() pure returns (ObjectType) {
35
+ return ObjectType.wrap(7);
39
36
  }
40
37
 
41
- function TOKEN() pure returns (ObjectType) {
42
- return toObjectType(50);
38
+ function ROLE() pure returns (ObjectType) {
39
+ return ObjectType.wrap(8);
43
40
  }
44
41
 
45
42
  function SERVICE() pure returns (ObjectType) {
46
- return toObjectType(60);
43
+ return ObjectType.wrap(9);
47
44
  }
48
45
 
49
46
  function INSTANCE() pure returns (ObjectType) {
50
- return toObjectType(70);
47
+ return ObjectType.wrap(10);
51
48
  }
52
49
 
53
- function STAKE() pure returns (ObjectType) {
54
- return toObjectType(80);
50
+ function COMPONENT() pure returns (ObjectType) {
51
+ return ObjectType.wrap(11);
55
52
  }
56
53
 
57
- function COMPONENT() pure returns (ObjectType) {
58
- return toObjectType(100);
54
+ function PRODUCT() pure returns (ObjectType) {
55
+ return ObjectType.wrap(12);
59
56
  }
60
57
 
61
- function PRODUCT_SETUP() pure returns (ObjectType) {
62
- return toObjectType(101);
58
+ function ORACLE() pure returns (ObjectType) {
59
+ return ObjectType.wrap(13);
63
60
  }
64
61
 
65
- function REQUEST() pure returns (ObjectType) {
66
- return toObjectType(105);
62
+ function DISTRIBUTION() pure returns (ObjectType) {
63
+ return ObjectType.wrap(14);
67
64
  }
68
65
 
69
- function PRODUCT() pure returns (ObjectType) {
70
- return toObjectType(110);
66
+ function POOL() pure returns (ObjectType) {
67
+ return ObjectType.wrap(15);
71
68
  }
72
69
 
73
- function DISTRIBUTION() pure returns (ObjectType) {
74
- return toObjectType(120);
70
+ function APPLICATION() pure returns (ObjectType) {
71
+ return ObjectType.wrap(20);
75
72
  }
76
73
 
77
- function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
78
- return toObjectType(121);
74
+ function POLICY() pure returns (ObjectType) {
75
+ return ObjectType.wrap(21);
79
76
  }
80
77
 
81
- function DISTRIBUTOR() pure returns (ObjectType) {
82
- return toObjectType(122);
78
+ function CLAIM() pure returns (ObjectType) {
79
+ return ObjectType.wrap(22);
83
80
  }
84
81
 
85
- function REFERRAL() pure returns (ObjectType) {
86
- return toObjectType(123);
82
+ function PAYOUT() pure returns (ObjectType) {
83
+ return ObjectType.wrap(23);
87
84
  }
88
85
 
89
- function ORACLE() pure returns (ObjectType) {
90
- return toObjectType(130);
86
+ function RISK() pure returns (ObjectType) {
87
+ return ObjectType.wrap(24);
91
88
  }
92
89
 
93
- function POOL() pure returns (ObjectType) {
94
- return toObjectType(140);
90
+ function PRICE() pure returns (ObjectType) {
91
+ return ObjectType.wrap(25);
95
92
  }
96
93
 
97
- function BUNDLE() pure returns (ObjectType) {
98
- return toObjectType(220);
94
+ function REQUEST() pure returns (ObjectType) {
95
+ return ObjectType.wrap(26);
99
96
  }
100
97
 
101
- function RISK() pure returns (ObjectType) {
102
- return toObjectType(200);
98
+ function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
99
+ return ObjectType.wrap(27);
103
100
  }
104
101
 
105
- function APPLICATION() pure returns (ObjectType) {
106
- return toObjectType(210);
102
+ function DISTRIBUTOR() pure returns (ObjectType) {
103
+ return ObjectType.wrap(28);
107
104
  }
108
105
 
109
- function POLICY() pure returns (ObjectType) {
110
- return toObjectType(211);
106
+ function REFERRAL() pure returns (ObjectType) {
107
+ return ObjectType.wrap(29);
111
108
  }
112
109
 
113
- function CLAIM() pure returns (ObjectType) {
114
- return toObjectType(212);
110
+ function BUNDLE() pure returns (ObjectType) {
111
+ return ObjectType.wrap(30);
115
112
  }
116
113
 
117
- function PAYOUT() pure returns (ObjectType) {
118
- return toObjectType(213);
114
+ function TARGET() pure returns (ObjectType) {
115
+ return ObjectType.wrap(31);
119
116
  }
120
117
 
121
- function PRICE() pure returns (ObjectType) {
122
- return toObjectType(230);
118
+ function STAKE() pure returns (ObjectType) {
119
+ return ObjectType.wrap(32);
123
120
  }
124
121
 
125
- /// @dev Converts the uint8 to a ObjectType.
126
- function toObjectType(uint256 objectType) pure returns (ObjectType) {
127
- return ObjectType.wrap(uint8(objectType));
122
+ /// @dev Object type that includes any other object type.
123
+ /// Note that eq()/'==' does not take this property into account.
124
+ function ALL() pure returns (ObjectType) {
125
+ return ObjectType.wrap(99);
128
126
  }
129
127
 
130
- // pure free functions for operators
128
+ // other pure free functions for operators
131
129
  function eqObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
132
130
  return ObjectType.unwrap(a) == ObjectType.unwrap(b);
133
131
  }
134
132
 
135
- function neObjectType(
136
- ObjectType a,
137
- ObjectType b
138
- ) pure returns (bool isDifferent) {
133
+ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
139
134
  return ObjectType.unwrap(a) != ObjectType.unwrap(b);
140
135
  }
141
136
 
142
137
  // library functions that operate on user defined type
143
138
  library ObjectTypeLib {
144
139
 
140
+ error ErrorVersionTooBig(uint256 version);
141
+
145
142
  function zero() public pure returns (ObjectType) {
146
143
  return ObjectType.wrap(0);
147
144
  }
148
145
 
146
+ /// @dev Converts the uint256 into ObjectType.
147
+ function toObjectType(uint256 objectType) public pure returns (ObjectType) {
148
+ return ObjectType.wrap(uint8(objectType));
149
+ }
150
+
149
151
  /// @dev Converts the NftId to a uint256.
150
152
  function toInt(ObjectType objectType) public pure returns (uint96) {
151
153
  return uint96(ObjectType.unwrap(objectType));
@@ -163,6 +165,111 @@ library ObjectTypeLib {
163
165
 
164
166
  /// @dev Returns true if the values are equal (==).
165
167
  function eq(ObjectType a, ObjectType b) public pure returns (bool isSame) {
166
- return eqObjectType(a, b);
168
+ return ObjectType.unwrap(a) == ObjectType.unwrap(b);
169
+ }
170
+
171
+ /// @dev Returns true if the values are not equal (!=).
172
+ function ne(ObjectType a, ObjectType b) public pure returns (bool isSame) {
173
+ return ObjectType.unwrap(a) != ObjectType.unwrap(b);
174
+ }
175
+
176
+ /// @dev Returns the type/domain name for the provided object type
177
+ function toName(ObjectType objectType) public pure returns (string memory name) {
178
+ if (objectType == REGISTRY()) {
179
+ return "Registry";
180
+ } else if (objectType == STAKING()) {
181
+ return "Staking";
182
+ } else if (objectType == INSTANCE()) {
183
+ return "Instance";
184
+ } else if (objectType == COMPONENT()) {
185
+ return "Component";
186
+ } else if (objectType == PRODUCT()) {
187
+ return "Product";
188
+ } else if (objectType == ORACLE()) {
189
+ return "Oracle";
190
+ } else if (objectType == DISTRIBUTION()) {
191
+ return "Distribution";
192
+ } else if (objectType == POOL()) {
193
+ return "Pool";
194
+ } else if (objectType == APPLICATION()) {
195
+ return "Application";
196
+ } else if (objectType == POLICY()) {
197
+ return "Policy";
198
+ } else if (objectType == CLAIM()) {
199
+ return "Claim";
200
+ } else if (objectType == PRICE()) {
201
+ return "Price";
202
+ } else if (objectType == BUNDLE()) {
203
+ return "Bundle";
204
+ }
205
+
206
+ // fallback: ObjectType<obect-type-int>
207
+ return string(
208
+ abi.encodePacked(
209
+ "ObjectType",
210
+ toString(
211
+ toInt(objectType))));
212
+ }
213
+
214
+ function toVersionedName(
215
+ string memory name,
216
+ string memory suffix,
217
+ uint256 version
218
+ )
219
+ external
220
+ pure
221
+ returns (string memory versionedName)
222
+ {
223
+ if (version > maxNumReleases()) {
224
+ revert ErrorVersionTooBig(version);
225
+ }
226
+
227
+ string memory versionName = "_v0";
228
+
229
+ if (version >= 10) {
230
+ versionName = "_v";
231
+ }
232
+
233
+ versionedName = string(
234
+ abi.encodePacked(
235
+ name,
236
+ suffix,
237
+ versionName,
238
+ toString(version)));
239
+ }
240
+
241
+ /// @dev returns the max number of releases (major versions) this gif setup can handle.
242
+ function maxNumReleases() public pure returns (uint8) {
243
+ return 99;
244
+ }
245
+
246
+ /// @dev returns the provied int as a string
247
+ function toString(uint256 value) public pure returns (string memory name) {
248
+
249
+ if (value == 0) {
250
+ return "0";
251
+ }
252
+
253
+ uint256 temp = value;
254
+ uint256 digits = 0;
255
+ while (temp != 0) {
256
+ digits++;
257
+ temp /= 10;
258
+ }
259
+
260
+ bytes memory buffer = new bytes(digits);
261
+ uint index = digits - 1;
262
+
263
+ temp = value;
264
+ while (temp != 0) {
265
+ buffer[index] = bytes1(uint8(48 + temp % 10));
266
+ temp /= 10;
267
+
268
+ if (index > 0) {
269
+ index--;
270
+ }
271
+ }
272
+
273
+ return string(buffer);
167
274
  }
168
275
  }