@etherisc/gif-next 0.0.2-7ca6cd9-950 → 0.0.2-7d65090-351

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 (285) hide show
  1. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  2. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  3. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +108 -79
  4. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +48 -40
  6. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  7. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  8. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -0
  9. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  10. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +32 -101
  11. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  12. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +58 -65
  13. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  14. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +120 -1
  15. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  16. package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -79
  17. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +22 -22
  19. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  20. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +6 -6
  21. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  22. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
  23. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  24. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +201 -34
  25. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  26. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +41 -17
  27. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  28. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +72 -116
  29. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  30. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  31. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  32. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  33. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  34. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  35. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -71
  37. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  38. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  40. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  43. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  44. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  45. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  46. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  47. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -0
  48. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  49. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  50. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +66 -29
  51. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  52. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +27 -15
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  54. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +78 -49
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  56. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -25
  57. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  58. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +13 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  63. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -41
  65. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +25 -21
  67. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -37
  69. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +27 -19
  71. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +106 -69
  73. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +47 -35
  75. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
  77. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
  79. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
  81. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
  83. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  84. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  85. package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
  86. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  87. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +84 -47
  88. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  89. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +36 -24
  90. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  91. package/artifacts/contracts/product/PricingService.sol/PricingService.json +92 -63
  92. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  93. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +40 -32
  94. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  95. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  96. package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
  97. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  98. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +21 -13
  99. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -0
  103. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  104. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  105. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  106. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  107. package/artifacts/contracts/registry/Registry.sol/Registry.json +19 -19
  108. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  109. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1647 -153
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -14
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +20 -8
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +80 -154
  116. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
  118. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  119. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
  120. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  122. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  124. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +1 -1
  125. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +1 -1
  126. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +42 -10
  127. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +42 -10
  129. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +1 -1
  130. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +52 -20
  131. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +1 -1
  132. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +52 -20
  133. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  134. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  135. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +94 -73
  136. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +41 -37
  138. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  139. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
  140. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  141. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  142. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  143. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +1 -1
  144. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +1 -1
  145. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  146. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  147. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +13 -0
  148. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  149. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  150. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  151. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  153. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  154. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  155. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  156. package/artifacts/contracts/shared/IService.sol/IService.json +13 -0
  157. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  158. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  159. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  160. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  161. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +2 -2
  162. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  163. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +2 -2
  164. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  165. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +2 -2
  166. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  167. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  168. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  169. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  170. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  171. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  172. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
  174. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  175. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  176. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  177. package/artifacts/contracts/shared/Service.sol/Service.json +13 -0
  178. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  179. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  180. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  181. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  182. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  183. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
  184. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  185. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +44 -28
  186. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  187. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -84
  188. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  189. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +23 -39
  190. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  191. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  192. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  193. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +92 -73
  194. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +33 -41
  196. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  197. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +186 -114
  198. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  199. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +18 -18
  200. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  201. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  202. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  203. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  204. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  205. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  206. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  207. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  208. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  209. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  210. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  211. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  212. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  213. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  214. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  215. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +83 -2
  216. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  217. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  218. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  219. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  220. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  221. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  222. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  223. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  224. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  225. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +114 -4
  226. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  227. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  228. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  229. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  230. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  231. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  234. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  236. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  239. package/contracts/distribution/DistributionService.sol +3 -4
  240. package/contracts/instance/IInstance.sol +10 -5
  241. package/contracts/instance/IInstanceService.sol +24 -8
  242. package/contracts/instance/Instance.sol +59 -32
  243. package/contracts/instance/InstanceReader.sol +2 -0
  244. package/contracts/instance/InstanceService.sol +85 -8
  245. package/contracts/instance/InstanceStore.sol +4 -16
  246. package/contracts/instance/base/BalanceStore.sol +11 -6
  247. package/contracts/instance/base/Cloneable.sol +2 -25
  248. package/contracts/instance/base/ObjectManager.sol +1 -3
  249. package/contracts/oracle/OracleService.sol +5 -4
  250. package/contracts/pool/BundleService.sol +19 -19
  251. package/contracts/pool/PoolService.sol +6 -7
  252. package/contracts/product/ApplicationService.sol +5 -5
  253. package/contracts/product/ClaimService.sol +5 -5
  254. package/contracts/product/PolicyService.sol +5 -5
  255. package/contracts/product/PricingService.sol +4 -5
  256. package/contracts/product/ProductService.sol +5 -5
  257. package/contracts/registry/IServiceAuthorization.sol +35 -0
  258. package/contracts/registry/Registry.sol +6 -0
  259. package/contracts/registry/RegistryAdmin.sol +244 -148
  260. package/contracts/registry/RegistryService.sol +5 -5
  261. package/contracts/registry/RegistryServiceManager.sol +0 -5
  262. package/contracts/registry/ReleaseManager.sol +96 -169
  263. package/contracts/registry/ServiceAuthorization.sol +86 -0
  264. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  265. package/contracts/shared/AccessAdmin.sol +759 -0
  266. package/contracts/shared/AccessManagerCustom.sol +6 -1
  267. package/contracts/shared/AccessManagerExtended.sol +12 -1
  268. package/contracts/shared/ComponentService.sol +4 -5
  269. package/contracts/shared/IAccessAdmin.sol +168 -0
  270. package/contracts/shared/IService.sol +7 -0
  271. package/contracts/shared/Service.sol +27 -21
  272. package/contracts/staking/IStakingService.sol +11 -7
  273. package/contracts/staking/StakeManagerLib.sol +52 -0
  274. package/contracts/staking/Staking.sol +58 -96
  275. package/contracts/staking/StakingService.sol +61 -56
  276. package/contracts/staking/StakingServiceManager.sol +0 -1
  277. package/contracts/staking/StakingStore.sol +79 -38
  278. package/contracts/type/ObjectType.sol +135 -62
  279. package/contracts/type/RoleId.sol +74 -19
  280. package/contracts/type/Selector.sol +102 -0
  281. package/contracts/type/String.sol +53 -0
  282. package/package.json +1 -1
  283. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  284. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  285. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
@@ -17,7 +17,12 @@ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Ini
17
17
  2. _getAdminRestrictions() private view -> internal virtual view
18
18
  3. _checkSelector() private pure -> internal pure
19
19
  */
20
- abstract contract AccessManagerCustom is Initializable, ContextUpgradeable, MulticallUpgradeable, IAccessManager {
20
+ abstract contract AccessManagerCustom is
21
+ Initializable,
22
+ ContextUpgradeable,
23
+ MulticallUpgradeable,
24
+ IAccessManager
25
+ {
21
26
  using Time for *;
22
27
 
23
28
  // Structure that stores the details for a target contract.
@@ -13,7 +13,10 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
13
13
 
14
14
 
15
15
  // IMPORTANT: check role/target for existance before using return value of getter
16
- contract AccessManagerExtended is AccessManagerCustom, IAccessManagerExtended {
16
+ contract AccessManagerExtended is
17
+ AccessManagerCustom,
18
+ IAccessManagerExtended
19
+ {
17
20
  using EnumerableSet for EnumerableSet.AddressSet;
18
21
 
19
22
  string constant private ADMIN_ROLE_NAME = "Admin";
@@ -76,6 +79,14 @@ contract AccessManagerExtended is AccessManagerCustom, IAccessManagerExtended {
76
79
  return $._targetAddressForName[name] != address(0);
77
80
  }
78
81
 
82
+ function getTargets() public view returns (uint256 numberOfTargets) {
83
+ return _getAccessManagerExtendedStorage()._targetAddresses.length;
84
+ }
85
+
86
+ function getTarget(uint256 idx) public view returns (address target) {
87
+ return _getAccessManagerExtendedStorage()._targetAddresses[idx];
88
+ }
89
+
79
90
  function getTargetAddress(string memory name) public view returns(address targetAddress) {
80
91
  AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
81
92
  return $._targetAddressForName[name];
@@ -64,11 +64,6 @@ contract ComponentService is
64
64
  registerInterface(type(IComponentService).interfaceId);
65
65
  }
66
66
 
67
-
68
- function getDomain() public pure virtual override returns(ObjectType) {
69
- return COMPONENT();
70
- }
71
-
72
67
  //-------- component ----------------------------------------------------//
73
68
 
74
69
  function setWallet(address newWallet) external virtual {
@@ -615,4 +610,8 @@ contract ComponentService is
615
610
  revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
616
611
  }
617
612
  }
613
+
614
+ function _getDomain() internal pure virtual override returns(ObjectType) {
615
+ return COMPONENT();
616
+ }
618
617
  }
@@ -0,0 +1,168 @@
1
+ // SPDX-License-Identifier: UNLICENSED
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
+
6
+ import {RoleId} from "../type/RoleId.sol";
7
+ import {Selector} from "../type/Selector.sol";
8
+ import {Str} from "../type/String.sol";
9
+ import {Timestamp} from "../type/Timestamp.sol";
10
+
11
+ interface IAccessAdmin is
12
+ IAccessManaged
13
+ {
14
+
15
+ // roles
16
+ event LogRoleCreated(RoleId roleId, RoleId roleAdminId, string name);
17
+ event LogRoleDisabled(RoleId roleId, bool disabled, Timestamp disabledAtOld);
18
+ event LogTargetCreated(address target, string name);
19
+ event LogFunctionCreated(address target, Selector selector, string name);
20
+
21
+ // only deployer modifier
22
+ error ErrorNotDeployer();
23
+
24
+ // only role admin modifier
25
+ error ErrorNotAdminOfRole(RoleId adminRoleId);
26
+
27
+ // only role owner modifier
28
+ error ErrorNotRoleOwner(RoleId roleId);
29
+
30
+ // initialize authority
31
+ error ErrorAuthorityAlreadySet();
32
+ error ErrorAdminRoleMissing();
33
+
34
+ // create role
35
+ error ErrorRoleAlreadyCreated(RoleId roleId, string name);
36
+ error ErrorRoleAdminNotExisting(RoleId adminRoleId);
37
+ error ErrorRoleNameEmpty(RoleId roleId);
38
+ error ErrorRoleNameAlreadyExists(RoleId roleId, string name, RoleId existingRoleId);
39
+
40
+ // grant/revoke/renounce role
41
+ error ErrorRoleUnknown(RoleId roleId);
42
+ error ErrorRoleIsLocked(RoleId roleId);
43
+ error ErrorRoleIsDisabled(RoleId roleId);
44
+ error ErrorRoleMembersLimitReached(RoleId roleId, uint256 memberCountLimit);
45
+ error ErrorRoleRemovalDisabled(RoleId roleId);
46
+
47
+ // create target
48
+ error ErrorTargetAlreadyCreated(address target, string name);
49
+ error ErrorTargetNameEmpty(address target);
50
+ error ErrorTargetNameAlreadyExists(address target, string name, address existingTarget);
51
+ error ErrorTargetNotAccessManaged(address target);
52
+ error ErrorTargetAuthorityMismatch(address expectedAuthority, address actualAuthority);
53
+
54
+ // lock target
55
+ error ErrorTagetNotLockable();
56
+
57
+ // authorize target functions
58
+ error ErrorAuthorizeForAdminRoleInvalid(address target);
59
+
60
+ // check target
61
+ error ErrorTargetUnknown(address target);
62
+
63
+ struct RoleInfo {
64
+ RoleId adminRoleId;
65
+ Str name;
66
+ uint256 maxMemberCount;
67
+ bool memberRemovalDisabled;
68
+ Timestamp disabledAt;
69
+ bool exists;
70
+ }
71
+
72
+ struct RoleNameInfo {
73
+ RoleId roleId;
74
+ bool exists;
75
+ }
76
+
77
+ struct TargetInfo {
78
+ Str name;
79
+ Timestamp createdAt;
80
+ }
81
+
82
+ struct Function {
83
+ Selector selector; // function selector
84
+ Str name; // function name
85
+ }
86
+
87
+ /// @dev Create a new named role using the specified parameters.
88
+ /// The adminRoleId refers to the required role to grant/revoke the newly created role.
89
+ /// permissioned: the caller must have the manager role (getManagerRole).
90
+ function createRole(
91
+ RoleId roleId,
92
+ RoleId adminRoleId,
93
+ string memory name,
94
+ uint256 maxMemberCount,
95
+ bool memberRemovalDisabled
96
+ )
97
+ external;
98
+
99
+ /// @dev Set the disabled status of the speicified role.
100
+ /// Role disabling only prevents the role from being granted to new accounts.
101
+ /// Existing role members may still execute functions that are authorized for that role.
102
+ /// Permissioned: the caller must have the manager role (getManagerRole).
103
+ function setRoleDisabled(RoleId roleId, bool disabled) external;
104
+
105
+ /// @dev Grant the specified account the provided role.
106
+ /// Permissioned: the caller must have the roles admin role.
107
+ function grantRole(address account, RoleId roleId) external;
108
+
109
+ /// @dev Revoke the provided role from the specified account.
110
+ /// Permissioned: the caller must have the roles admin role.
111
+ function revokeRole(address account, RoleId roleId) external;
112
+
113
+ /// @dev Removes the provided role from the caller
114
+ function renounceRole(RoleId roleId) external;
115
+
116
+ /// @dev Create a new named target.
117
+ /// Permissioned: the caller must have the manager role (getManagerRole).
118
+ function createTarget(address target, string memory name) external;
119
+
120
+ /// @dev Set the locked status of the speicified contract.
121
+ /// IMPORTANT: using this function the AccessManager might itself be put into locked state from which it cannot be unlocked again.
122
+ /// Overwrite this function if a different use case specific behaviour is required.
123
+ /// Alternatively, add specific function to just unlock this contract without a restricted() modifier.
124
+ /// Permissioned: the caller must have the manager role (getManagerRole).
125
+ function setTargetLocked(address target, bool locked) external;
126
+
127
+ /// @dev Specifies which functions of the target can be accessed by the provided role.
128
+ /// Previously existing authorizations will be overwritten.
129
+ /// Authorizing the admin role is not allowed, use function unauthorizedFunctions for this.
130
+ /// Permissioned: the caller must have the manager role (getManagerRole).
131
+ function authorizeFunctions(address target, RoleId roleId, Function[] memory functions) external;
132
+
133
+ /// @dev Specifies for which functionss to remove any previous authorization
134
+ /// Permissioned: the caller must have the manager role (getManagerRole).
135
+ function unauthorizeFunctions(address target, Function[] memory functions) external;
136
+
137
+ //--- view functions ----------------------------------------------------//
138
+
139
+ function roles() external view returns (uint256 numberOfRoles);
140
+ function getRoleId(uint256 idx) external view returns (RoleId roleId);
141
+ function getAdminRole() external view returns (RoleId roleId);
142
+ function getManagerRole() external view returns (RoleId roleId);
143
+ function getPublicRole() external view returns (RoleId roleId);
144
+
145
+ function roleExists(RoleId roleId) external view returns (bool exists);
146
+ function isRoleDisabled(RoleId roleId) external view returns (bool roleIsActive);
147
+ function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory roleInfo);
148
+ function getRoleForName(Str name) external view returns (RoleNameInfo memory);
149
+
150
+ function hasRole(address account, RoleId roleId) external view returns (bool);
151
+ function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers);
152
+ function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account);
153
+
154
+ function targetExists(address target) external view returns (bool exists);
155
+ function isTargetLocked(address target) external view returns (bool locked);
156
+ function targets() external view returns (uint256 numberOfTargets);
157
+ function getTargetAddress(uint256 idx) external view returns (address target);
158
+ function getTargetInfo(address target) external view returns (TargetInfo memory targetInfo);
159
+ function getTargetForName(Str name) external view returns (address target);
160
+
161
+ function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions);
162
+ function getAuthorizedFunction(address target, uint256 idx) external view returns (Function memory func, RoleId roleId);
163
+ function canCall(address caller, address target, Selector selector) external view returns (bool can);
164
+
165
+ function toFunction(bytes4 selector, string memory name) external pure returns (Function memory);
166
+ function isAccessManaged(address target) external view returns (bool);
167
+ function deployer() external view returns (address);
168
+ }
@@ -6,6 +6,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
6
6
  import {IRegisterable} from "./IRegisterable.sol";
7
7
  import {IVersionable} from "./IVersionable.sol";
8
8
  import {ObjectType} from "../type/ObjectType.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
9
10
 
10
11
  interface IService is
11
12
  IRegisterable,
@@ -14,5 +15,11 @@ interface IService is
14
15
  {
15
16
  error ErrorServiceNotImplemented();
16
17
 
18
+ /// @dev returns the domain for this service.
19
+ /// In any GIF release only one service for any given domain may be deployed.
17
20
  function getDomain() external pure returns(ObjectType serviceDomain);
21
+
22
+ /// @dev returns the GIF release specific role id.
23
+ /// These role ids are used to authorize service to service communication.
24
+ function getRoleId() external pure returns(RoleId serviceRoleId);
18
25
  }
@@ -4,17 +4,15 @@ pragma solidity ^0.8.20;
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
  import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
6
 
7
- import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
10
-
11
- import {Versionable} from "./Versionable.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
12
8
  import {IService} from "./IService.sol";
13
9
  import {IVersionable} from "./IVersionable.sol";
14
- import {Versionable} from "./Versionable.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
15
12
  import {Registerable} from "./Registerable.sol";
16
-
17
- import {IRegistry} from "../registry/IRegistry.sol";
13
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
14
+ import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
15
+ import {Versionable} from "./Versionable.sol";
18
16
 
19
17
 
20
18
  /// @dev service base contract
@@ -27,15 +25,6 @@ abstract contract Service is
27
25
 
28
26
  uint8 private constant GIF_MAJOR_VERSION = 3;
29
27
 
30
- // from Versionable
31
- function getVersion()
32
- public
33
- pure
34
- virtual override (IVersionable, Versionable)
35
- returns(Version)
36
- {
37
- return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
38
- }
39
28
 
40
29
  function initializeService(
41
30
  address registry,
@@ -58,9 +47,7 @@ abstract contract Service is
58
47
  if(authority != address(0)) {
59
48
  __AccessManaged_init(authority);
60
49
  } else {
61
- address registryServiceAddress = getRegistry().getServiceAddress(
62
- REGISTRY(),
63
- VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
50
+ address registryServiceAddress = _getServiceAddress(REGISTRY());
64
51
 
65
52
  // copy authority from already registered registry services
66
53
  __AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
@@ -70,8 +57,27 @@ abstract contract Service is
70
57
  registerInterface(type(IService).interfaceId);
71
58
  }
72
59
 
60
+ function getDomain() external virtual pure returns(ObjectType serviceDomain) {
61
+ return _getDomain();
62
+ }
63
+
64
+ function getRoleId() external virtual pure returns(RoleId serviceRoleId) {
65
+ return RoleIdLib.roleForTypeAndVersion(_getDomain(), VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
66
+ }
67
+
68
+ // from Versionable
69
+ function getVersion()
70
+ public
71
+ pure
72
+ virtual override (IVersionable, Versionable)
73
+ returns(Version)
74
+ {
75
+ return VersionLib.toVersion(GIF_MAJOR_VERSION,0,0);
76
+ }
77
+
78
+ function _getDomain() internal virtual pure returns (ObjectType);
73
79
 
74
80
  function _getServiceAddress(ObjectType domain) internal view returns (address) {
75
- return getRegistry().getServiceAddress(domain, getVersion().toMajorPart());
81
+ return getRegistry().getServiceAddress(domain, VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
76
82
  }
77
83
  }
@@ -52,21 +52,25 @@ interface IStakingService is IService
52
52
  UFixed initialRewardRate
53
53
  ) external;
54
54
 
55
- /// @dev set the stake locking period to the specified duration.
55
+ /// @dev Set the instance stake locking period to the specified duration.
56
56
  /// permissioned: only the owner of the specified target may set the locking period
57
- function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
57
+ function setInstanceLockingPeriod(NftId instanceNftId, Seconds lockingPeriod) external;
58
58
 
59
- /// @dev set the reward rate to the specified value
59
+ /// @dev Set the instance reward rate to the specified value
60
60
  /// permissioned: only the owner of the specified target may set the locking period
61
- function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
61
+ function setInstanceRewardRate(NftId instanceNftId, UFixed rewardRate) external;
62
62
 
63
- /// @dev (re)fills the staking reward reserves for the specified target
63
+ /// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the reward provider.
64
64
  /// unpermissioned: anybody may fill up staking reward reserves
65
- function refillRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
65
+ function refillInstanceRewardReserves(NftId instanceNftId, address rewardProvider, Amount dipAmount) external returns (Amount newBalance);
66
+
67
+ /// @dev (Re)fills the staking reward reserves for the specified target using the dips provided by the sender
68
+ /// unpermissioned: anybody may fill up staking reward reserves
69
+ function refillRewardReservesBySender(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
66
70
 
67
71
  /// @dev defunds the staking reward reserves for the specified target
68
72
  /// permissioned: only the target owner may call this function
69
- function withdrawRewardReserves(NftId targetNftId, Amount dipAmount) external returns (Amount newBalance);
73
+ function withdrawInstanceRewardReserves(NftId instanceNftId, Amount dipAmount) external returns (Amount newBalance);
70
74
 
71
75
  /// @dev create a new stake with amount DIP to the specified target
72
76
  /// returns the id of the newly minted stake nft
@@ -13,12 +13,64 @@ import {NftId} from "../type/NftId.sol";
13
13
  import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
14
14
  import {Seconds, SecondsLib} from "../type/Seconds.sol";
15
15
  import {StakingReader} from "./StakingReader.sol";
16
+ import {StakingStore} from "./StakingStore.sol";
16
17
  import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
17
18
  import {UFixed, UFixedLib} from "../type/UFixed.sol";
18
19
 
19
20
 
20
21
  library StakeManagerLib {
21
22
 
23
+ function stake(
24
+ IRegistry registry,
25
+ StakingReader stakingReader,
26
+ StakingStore stakingStore,
27
+ NftId stakeNftId,
28
+ Amount stakeAmount
29
+ )
30
+ external
31
+ returns (Amount stakeBalance)
32
+ {
33
+ // check that target is active for staking
34
+ (
35
+ UFixed rewardRate,
36
+ Seconds lockingPeriod
37
+ ) = checkStakeParameters(
38
+ stakingReader,
39
+ stakeNftId);
40
+
41
+ // calculate new rewards (if any)
42
+ (
43
+ Amount rewardIncrementAmount,
44
+ Amount currentTotalDipAmount
45
+ ) = calculateRewardIncrease(
46
+ stakingReader,
47
+ stakeNftId,
48
+ rewardRate);
49
+
50
+ stakeBalance = currentTotalDipAmount + stakeAmount;
51
+
52
+ // TODO check that additional dip, rewards and rewards increment
53
+ // are still ok with max target staking amount
54
+ NftId targetNftId = registry.getObjectInfo(stakeNftId).parentNftId;
55
+
56
+ stakingStore.restakeRewards(
57
+ stakeNftId,
58
+ targetNftId,
59
+ rewardIncrementAmount);
60
+
61
+ stakingStore.increaseStake(
62
+ stakeNftId,
63
+ targetNftId,
64
+ stakeAmount);
65
+
66
+ // update locked until with target locking period
67
+ stakingStore.update(
68
+ stakeNftId,
69
+ IStaking.StakeInfo({
70
+ lockedUntil: TimestampLib.blockTimestamp().addSeconds(
71
+ lockingPeriod)}));
72
+
73
+ }
22
74
 
23
75
  function checkCreateParameters(
24
76
  StakingReader stakingReader,