@etherisc/gif-next 0.0.2-7f35518-483 → 0.0.2-7f39e38-904

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 (552) hide show
  1. package/README.md +71 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +969 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +454 -554
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +356 -176
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +458 -3052
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +612 -181
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +504 -322
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +524 -352
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +331 -108
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +71 -45
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  42. package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  49. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
  52. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +294 -361
  54. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  55. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1148 -0
  56. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
  58. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  59. package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  65. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  73. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +231 -204
  74. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  76. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +701 -0
  78. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  79. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +257 -288
  80. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  81. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +989 -0
  82. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  83. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +140 -86
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  85. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
  92. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  93. package/artifacts/contracts/product/Product.sol/Product.json +1391 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  95. package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  99. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +340 -195
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +434 -194
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  106. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  107. package/artifacts/contracts/registry/Registry.sol/Registry.json +429 -261
  108. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  109. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +322 -0
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +499 -338
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +320 -140
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1151 -0
  116. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -109
  120. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  122. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  123. package/artifacts/contracts/shared/Component.sol/Component.json +890 -0
  124. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  125. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
  126. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
  128. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +215 -205
  130. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  131. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  132. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  133. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +625 -0
  134. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  135. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
  136. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  137. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +699 -0
  138. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
  140. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  142. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  143. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
  144. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  146. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  147. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
  148. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +35 -0
  150. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  151. package/artifacts/contracts/shared/IService.sol/IService.json +84 -178
  152. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  154. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  155. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
  156. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  157. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
  158. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  159. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  160. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  161. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  162. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +109 -29
  164. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  165. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  166. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
  168. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -53
  170. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  171. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  172. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  173. package/artifacts/contracts/shared/Service.sol/Service.json +185 -165
  174. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  175. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  176. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  177. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  178. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  180. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  181. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  182. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
  183. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
  184. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  185. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +884 -0
  186. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
  187. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
  188. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  189. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
  190. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  191. package/artifacts/contracts/staking/Staking.sol/Staking.json +2002 -0
  192. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  193. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +748 -0
  194. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  195. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -0
  196. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  197. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1207 -0
  198. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  199. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  200. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  201. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1690 -0
  202. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  203. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -0
  204. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  205. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  206. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  207. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  208. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  209. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  210. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  211. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  212. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  213. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  214. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  215. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  216. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  217. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  218. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  219. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
  220. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  221. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  222. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  223. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  224. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  226. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  228. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  230. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  231. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  232. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +174 -0
  234. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  236. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  238. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  240. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  242. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  244. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  246. package/contracts/distribution/Distribution.sol +263 -0
  247. package/contracts/distribution/DistributionService.sol +298 -0
  248. package/contracts/distribution/DistributionServiceManager.sol +54 -0
  249. package/contracts/distribution/IDistributionComponent.sol +66 -0
  250. package/contracts/distribution/IDistributionService.sol +81 -0
  251. package/contracts/instance/BundleManager.sol +126 -0
  252. package/contracts/instance/IInstance.sol +62 -24
  253. package/contracts/instance/IInstanceService.sol +66 -13
  254. package/contracts/instance/Instance.sol +151 -366
  255. package/contracts/instance/InstanceAccessManager.sol +432 -177
  256. package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
  257. package/contracts/instance/InstanceReader.sol +143 -83
  258. package/contracts/instance/InstanceService.sol +309 -124
  259. package/contracts/instance/InstanceServiceManager.sol +12 -24
  260. package/contracts/instance/InstanceStore.sol +260 -0
  261. package/contracts/instance/base/BalanceStore.sol +118 -0
  262. package/contracts/instance/base/Cloneable.sol +51 -0
  263. package/contracts/instance/base/ObjectManager.sol +82 -0
  264. package/contracts/instance/module/IAccess.sol +37 -21
  265. package/contracts/instance/module/IBundle.sol +8 -8
  266. package/contracts/instance/module/IComponents.sol +52 -0
  267. package/contracts/instance/module/IDistribution.sol +7 -4
  268. package/contracts/instance/module/IPolicy.sol +56 -17
  269. package/contracts/instance/module/IRisk.sol +1 -1
  270. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  271. package/contracts/pool/BundleService.sol +296 -0
  272. package/contracts/pool/BundleServiceManager.sol +42 -0
  273. package/contracts/pool/IBundleService.sol +106 -0
  274. package/contracts/pool/IPoolComponent.sol +112 -0
  275. package/contracts/pool/IPoolService.sol +147 -0
  276. package/contracts/pool/Pool.sol +299 -0
  277. package/contracts/pool/PoolService.sol +424 -0
  278. package/contracts/pool/PoolServiceManager.sol +42 -0
  279. package/contracts/product/ApplicationService.sol +254 -0
  280. package/contracts/product/ApplicationServiceManager.sol +38 -0
  281. package/contracts/product/ClaimService.sol +437 -0
  282. package/contracts/product/ClaimServiceManager.sol +38 -0
  283. package/contracts/product/IApplicationService.sol +62 -0
  284. package/contracts/product/IClaimService.sol +93 -0
  285. package/contracts/product/IPolicyService.sol +78 -0
  286. package/contracts/product/IPricingService.sol +39 -0
  287. package/contracts/product/IProductComponent.sol +42 -0
  288. package/contracts/product/IProductService.sol +33 -0
  289. package/contracts/product/PolicyService.sol +473 -0
  290. package/contracts/product/PolicyServiceManager.sol +42 -0
  291. package/contracts/product/PricingService.sol +301 -0
  292. package/contracts/product/PricingServiceManager.sol +42 -0
  293. package/contracts/product/Product.sol +377 -0
  294. package/contracts/product/ProductService.sol +124 -0
  295. package/contracts/product/ProductServiceManager.sol +42 -0
  296. package/contracts/registry/ChainNft.sol +14 -0
  297. package/contracts/registry/IRegistry.sol +76 -45
  298. package/contracts/registry/IRegistryService.sol +51 -16
  299. package/contracts/registry/ITransferInterceptor.sol +1 -0
  300. package/contracts/registry/Registry.sol +358 -269
  301. package/contracts/registry/RegistryAccessManager.sol +196 -0
  302. package/contracts/registry/RegistryService.sol +126 -259
  303. package/contracts/registry/RegistryServiceManager.sol +35 -43
  304. package/contracts/registry/ReleaseManager.sol +563 -0
  305. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  306. package/contracts/registry/TokenRegistry.sol +300 -57
  307. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  308. package/contracts/shared/Component.sol +286 -0
  309. package/contracts/shared/ComponentService.sol +595 -0
  310. package/contracts/shared/ComponentServiceManager.sol +35 -0
  311. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  312. package/contracts/shared/ERC165.sol +15 -13
  313. package/contracts/shared/IComponent.sol +74 -0
  314. package/contracts/shared/IComponentService.sol +91 -0
  315. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  316. package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
  317. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  318. package/contracts/shared/INftOwnable.sol +12 -11
  319. package/contracts/shared/IPolicyHolder.sol +45 -0
  320. package/contracts/shared/IRegisterable.sol +4 -6
  321. package/contracts/shared/IRegistryLinked.sol +11 -0
  322. package/contracts/shared/IService.sol +8 -5
  323. package/contracts/shared/IVersionable.sol +5 -48
  324. package/contracts/shared/InstanceLinkedComponent.sol +145 -0
  325. package/contracts/shared/KeyValueStore.sol +130 -0
  326. package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
  327. package/contracts/shared/NftIdSetManager.sol +65 -0
  328. package/contracts/shared/NftOwnable.sol +65 -83
  329. package/contracts/shared/PolicyHolder.sol +101 -0
  330. package/contracts/shared/ProxyManager.sol +126 -25
  331. package/contracts/shared/Registerable.sol +26 -41
  332. package/contracts/shared/RegistryLinked.sol +43 -0
  333. package/contracts/shared/Service.sol +47 -24
  334. package/contracts/shared/TokenHandler.sol +37 -6
  335. package/contracts/shared/Versionable.sol +4 -92
  336. package/contracts/staking/IStaking.sol +152 -0
  337. package/contracts/staking/IStakingManager.sol +15 -0
  338. package/contracts/staking/IStakingService.sol +162 -0
  339. package/contracts/staking/IStakingStore.sol +130 -0
  340. package/contracts/staking/StakeManagerLib.sol +156 -0
  341. package/contracts/staking/Staking.sol +502 -0
  342. package/contracts/staking/StakingManager.sol +65 -0
  343. package/contracts/staking/StakingReader.sol +147 -0
  344. package/contracts/staking/StakingService.sol +375 -0
  345. package/contracts/staking/StakingServiceManager.sol +44 -0
  346. package/contracts/staking/StakingStore.sol +329 -0
  347. package/contracts/staking/TargetManagerLib.sol +179 -0
  348. package/contracts/{types → type}/AddressSet.sol +1 -1
  349. package/contracts/type/Amount.sol +114 -0
  350. package/contracts/{types → type}/Blocknumber.sol +21 -3
  351. package/contracts/type/ClaimId.sol +75 -0
  352. package/contracts/{types → type}/DistributorType.sol +2 -2
  353. package/contracts/{types → type}/Fee.sol +33 -23
  354. package/contracts/{types → type}/NftId.sol +18 -12
  355. package/contracts/type/NftIdSet.sol +62 -0
  356. package/contracts/{types → type}/ObjectType.sol +26 -9
  357. package/contracts/type/PayoutId.sol +82 -0
  358. package/contracts/{types → type}/Referral.sol +5 -1
  359. package/contracts/{types → type}/RiskId.sol +1 -1
  360. package/contracts/type/RoleId.sol +143 -0
  361. package/contracts/type/Seconds.sol +71 -0
  362. package/contracts/{types → type}/StateId.sol +24 -6
  363. package/contracts/{types → type}/Timestamp.sol +18 -13
  364. package/contracts/{types → type}/UFixed.sol +1 -0
  365. package/contracts/{types → type}/Version.sol +2 -1
  366. package/package.json +3 -3
  367. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  368. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  369. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -670
  370. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  371. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  372. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  373. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -204
  374. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  375. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  376. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  377. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  378. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  379. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -873
  380. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  381. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  382. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  383. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  384. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  385. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  386. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  387. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  388. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  389. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  390. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  391. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  392. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  393. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  394. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  395. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  396. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  397. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  398. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  399. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  400. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  401. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  402. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  403. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  404. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  405. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  406. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  407. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  408. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  409. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  410. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  411. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  412. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  413. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  414. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  415. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  416. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  417. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  418. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  419. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  420. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  421. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  422. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  423. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  424. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  425. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  426. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  427. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  428. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  429. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  430. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  431. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  432. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  433. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  434. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  435. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  436. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  437. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  438. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  439. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  440. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  441. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -681
  442. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  443. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -436
  444. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  445. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  446. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  447. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  448. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  449. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  450. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -820
  451. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  452. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  453. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  454. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  455. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  456. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  457. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  458. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  459. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  460. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  461. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  462. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  463. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  464. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  465. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  466. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  467. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  468. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  469. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  470. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  471. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  472. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  473. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  474. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  476. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  478. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  479. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  480. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  481. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  482. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  483. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  484. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  485. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  486. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  487. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  488. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  489. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  490. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  491. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  492. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  493. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  494. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  495. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  496. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  497. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  498. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  499. package/contracts/components/BaseComponent.sol +0 -91
  500. package/contracts/components/Distribution.sol +0 -166
  501. package/contracts/components/IBaseComponent.sol +0 -25
  502. package/contracts/components/IDistributionComponent.sol +0 -46
  503. package/contracts/components/IPoolComponent.sol +0 -62
  504. package/contracts/components/IProductComponent.sol +0 -35
  505. package/contracts/components/Pool.sol +0 -247
  506. package/contracts/components/Product.sol +0 -297
  507. package/contracts/experiment/cloning/Cloner.sol +0 -47
  508. package/contracts/experiment/errors/Require.sol +0 -38
  509. package/contracts/experiment/errors/Revert.sol +0 -44
  510. package/contracts/experiment/inheritance/A.sol +0 -53
  511. package/contracts/experiment/inheritance/B.sol +0 -28
  512. package/contracts/experiment/inheritance/C.sol +0 -34
  513. package/contracts/experiment/inheritance/IA.sol +0 -13
  514. package/contracts/experiment/inheritance/IB.sol +0 -10
  515. package/contracts/experiment/inheritance/IC.sol +0 -12
  516. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  517. package/contracts/experiment/statemachine/ISM.sol +0 -25
  518. package/contracts/experiment/statemachine/SM.sol +0 -57
  519. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  520. package/contracts/experiment/types/TypeA.sol +0 -47
  521. package/contracts/experiment/types/TypeB.sol +0 -29
  522. package/contracts/instance/AccessManagedSimple.sol +0 -115
  523. package/contracts/instance/AccessManagerSimple.sol +0 -692
  524. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  525. package/contracts/instance/base/ComponentServiceBase.sol +0 -60
  526. package/contracts/instance/base/IInstanceBase.sol +0 -23
  527. package/contracts/instance/base/KeyValueStore.sol +0 -172
  528. package/contracts/instance/module/ISetup.sol +0 -44
  529. package/contracts/instance/module/ITreasury.sol +0 -23
  530. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  531. package/contracts/instance/service/DistributionService.sol +0 -99
  532. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  533. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  534. package/contracts/instance/service/IDistributionService.sol +0 -12
  535. package/contracts/instance/service/IPoolService.sol +0 -37
  536. package/contracts/instance/service/IProductService.sol +0 -107
  537. package/contracts/instance/service/PoolService.sol +0 -205
  538. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  539. package/contracts/shared/ContractDeployerLib.sol +0 -72
  540. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  541. package/contracts/test/TestFee.sol +0 -25
  542. package/contracts/test/TestRegisterable.sol +0 -18
  543. package/contracts/test/TestRoleId.sol +0 -14
  544. package/contracts/test/TestService.sol +0 -24
  545. package/contracts/test/TestToken.sol +0 -26
  546. package/contracts/test/TestVersion.sol +0 -44
  547. package/contracts/test/TestVersionable.sol +0 -17
  548. package/contracts/types/ChainId.sol +0 -38
  549. package/contracts/types/NftIdSet.sol +0 -60
  550. package/contracts/types/NumberId.sol +0 -52
  551. package/contracts/types/RoleId.sol +0 -89
  552. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,65 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IVersionable} from "../shared/IVersionable.sol";
5
+ import {ProxyManager} from "../shared/ProxyManager.sol";
6
+ import {ReleaseManager} from "../registry/ReleaseManager.sol";
7
+ import {Staking} from "./Staking.sol";
8
+ import {StakingReader} from "./StakingReader.sol";
9
+ import {StakingStore} from "./StakingStore.sol";
10
+
11
+ contract StakingManager is
12
+ ProxyManager
13
+ {
14
+
15
+ error ErrorStakingManagerNotReleaseManager(address sender);
16
+
17
+ Staking private _staking;
18
+ address private _initialImplementation;
19
+ bytes private _initializationData;
20
+
21
+ /// @dev initializes proxy manager with service implementation
22
+ constructor(
23
+ address registryAddress,
24
+ address stakingStoreAddress,
25
+ address initialOwner
26
+ )
27
+ ProxyManager(registryAddress)
28
+ {
29
+ // TODO cleanup
30
+ // ReleaseManager releaseManager = ReleaseManager(
31
+ // getRegistry().getReleaseManagerAddress());
32
+ // address authority = releaseManager.authority();
33
+
34
+ Staking stakingImplementation = new Staking();
35
+ // stakingStoreAddress
36
+ // StakingStore stakingStore = new StakingStore(authority, registryAddress, address(stakingReader));
37
+ StakingStore stakingStore = StakingStore(stakingStoreAddress);
38
+ StakingReader stakingReader = stakingStore.getStakingReader();
39
+ address authority = stakingStore.authority();
40
+
41
+ _initialImplementation = address(stakingImplementation);
42
+ _initializationData = abi.encode(
43
+ authority,
44
+ registryAddress,
45
+ address(stakingReader),
46
+ address(stakingStore),
47
+ initialOwner);
48
+
49
+ IVersionable versionable = deploy(
50
+ _initialImplementation,
51
+ _initializationData);
52
+
53
+ _staking = Staking(address(versionable));
54
+ }
55
+
56
+ //--- view functions ----------------------------------------------------//
57
+
58
+ function getStaking()
59
+ external
60
+ view
61
+ returns (Staking)
62
+ {
63
+ return _staking;
64
+ }
65
+ }
@@ -0,0 +1,147 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
6
+ import {IComponent} from "../shared/IComponent.sol";
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+ import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
9
+ import {IStaking} from "../staking/IStaking.sol";
10
+ import {IVersionable} from "../shared/IVersionable.sol";
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
13
+ import {ObjectType, STAKE, TARGET} from "../type/ObjectType.sol";
14
+ import {Seconds} from "../type/Seconds.sol";
15
+ import {StakingStore} from "./StakingStore.sol";
16
+ import {Timestamp} from "../type/Timestamp.sol";
17
+ import {UFixed} from "../type/UFixed.sol";
18
+
19
+ contract StakingReader is
20
+ IRegistryLinked
21
+ {
22
+
23
+ error ErrorStakingReaderDependenciesAlreadySet();
24
+ error ErrorStakingReaderStakingStoreAlreadySet(address stakingStore);
25
+
26
+ IRegistry private _registry;
27
+ IStaking private _staking;
28
+ StakingStore private _store;
29
+
30
+
31
+ function setStakingDependencies(
32
+ address registryAddress,
33
+ address stakingAddress,
34
+ address stakingStoreAddress
35
+ )
36
+ external
37
+ {
38
+ if (address(_staking) != address(0)) {
39
+ revert ErrorStakingReaderDependenciesAlreadySet();
40
+ }
41
+
42
+ _registry = IRegistry(registryAddress);
43
+ _staking = IStaking(stakingAddress);
44
+ _store = StakingStore(stakingStoreAddress);
45
+ }
46
+
47
+ // view and pure functions
48
+
49
+ function getRegistry() external view returns (IRegistry registry) {
50
+ return _registry;
51
+ }
52
+
53
+ function getStaking() external view returns (IStaking staking) {
54
+ return _staking;
55
+ }
56
+
57
+
58
+ function isTarget(NftId targetNftId) external view returns (bool) {
59
+ return _store.getTargetManager().exists(targetNftId);
60
+ }
61
+
62
+
63
+ function targets() external view returns (uint256) {
64
+ return _store.getTargetManager().nftIds();
65
+ }
66
+
67
+
68
+ function getTargetNftId(uint256 idx) external view returns (NftId) {
69
+ return _store.getTargetManager().getNftId(idx);
70
+ }
71
+
72
+
73
+ function isActive(NftId targetNftId) external view returns (bool) {
74
+ return _store.getTargetManager().isActive(targetNftId);
75
+ }
76
+
77
+
78
+ function activeTargets() external view returns (uint256) {
79
+ return _store.getTargetManager().activeNftIds();
80
+ }
81
+
82
+
83
+ function getActiveTargetNftId(uint256 idx) external view returns (NftId) {
84
+ return _store.getTargetManager().getActiveNftId(idx);
85
+ }
86
+
87
+
88
+ function getTargetInfo(NftId targetNftId) public view returns (IStaking.TargetInfo memory info) {
89
+ bytes memory data = _store.getData(targetNftId.toKey32(TARGET()));
90
+ if (data.length > 0) {
91
+ return abi.decode(data, (IStaking.TargetInfo));
92
+ }
93
+ }
94
+
95
+
96
+ function getStakeInfo(NftId stakeNftId) external view returns (IStaking.StakeInfo memory stakeInfo) {
97
+ bytes memory data = _store.getData(stakeNftId.toKey32(STAKE()));
98
+ if (data.length > 0) {
99
+ return abi.decode(data, (IStaking.StakeInfo));
100
+ }
101
+ }
102
+
103
+
104
+ function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount) {
105
+ return _store.getStakeBalance(nftId);
106
+ }
107
+
108
+
109
+ function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount) {
110
+ return _store.getRewardBalance(nftId);
111
+ }
112
+
113
+
114
+ function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt) {
115
+ return _store.getBalanceUpdatedAt(nftId);
116
+ }
117
+
118
+
119
+ function getRewardCalculationInput(NftId stakeNftId)
120
+ external
121
+ view
122
+ returns (
123
+ UFixed rewardRate,
124
+ Amount stakeAmount,
125
+ Timestamp lastUpdatedAt
126
+ )
127
+ {
128
+ NftId targetNftId = _registry.getObjectInfo(stakeNftId).parentNftId;
129
+ rewardRate = getTargetInfo(targetNftId).rewardRate;
130
+
131
+ (
132
+ stakeAmount,
133
+ lastUpdatedAt
134
+ ) = _store.getBalanceAndLastUpdatedAt(stakeNftId);
135
+ }
136
+
137
+ // function getTvlAmount(NftId targetNftId, address token) external view returns (Amount tvlAmount);
138
+ // function getStakedAmount(NftId targetNftId) external view returns (Amount stakeAmount);
139
+
140
+ // function getStakingRate(uint256 chainId, address token) external view returns (UFixed stakingRate);
141
+
142
+ // function calculateRewardIncrementAmount(
143
+ // NftId targetNftId,
144
+ // Timestamp rewardsLastUpdatedAt
145
+ // ) external view returns (Amount rewardIncrementAmount);
146
+
147
+ }
@@ -0,0 +1,375 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {ChainNft} from "../registry/ChainNft.sol";
8
+ import {IPoolService} from "../pool/IPoolService.sol";
9
+ import {IRegisterable} from "../shared/IRegisterable.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {RegistryService} from "../registry/RegistryService.sol";
12
+ import {IStaking} from "./IStaking.sol";
13
+ import {IStakingService} from "./IStakingService.sol";
14
+ import {NftId, NftIdLib} from "../type/NftId.sol";
15
+ import {ObjectType, INSTANCE, PROTOCOL, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
17
+ import {Service} from "../shared/Service.sol";
18
+ import {StakeManagerLib} from "./StakeManagerLib.sol";
19
+ import {StakingReader} from "./StakingReader.sol";
20
+ import {TargetManagerLib} from "./TargetManagerLib.sol";
21
+ import {Timestamp} from "../type/Timestamp.sol";
22
+ import {TokenHandler} from "../shared/TokenHandler.sol";
23
+ import {UFixed} from "../type/UFixed.sol";
24
+
25
+
26
+ contract StakingService is
27
+ Service,
28
+ IStakingService
29
+ {
30
+ // TODO decide and implement string spec for location calculation
31
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.StakingService.sol")) - 1)) & ~bytes32(uint256(0xff));
32
+ bytes32 public constant STAKING_SERVICE_LOCATION_V1 = 0x6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300;
33
+
34
+ struct StakingServiceStorage {
35
+ RegistryService _registryService;
36
+ IStaking _staking;
37
+ IERC20Metadata _dip;
38
+ TokenHandler _tokenHandler;
39
+ }
40
+
41
+ modifier onlyNftOwner(NftId nftId) {
42
+ if(msg.sender != getRegistry().ownerOf(nftId)) {
43
+ revert ErrorStakingServiceNotNftOwner(nftId, getRegistry().ownerOf(nftId), msg.sender);
44
+ }
45
+ _;
46
+ }
47
+
48
+ function getDomain() public pure override returns(ObjectType) {
49
+ return STAKING();
50
+ }
51
+
52
+
53
+ function registerProtocolTarget()
54
+ external
55
+ virtual
56
+ {
57
+ uint256 protocolId = ChainNft(
58
+ getRegistry().getChainNftAddress()).PROTOCOL_NFT_ID();
59
+
60
+ NftId protocolNftId = NftIdLib.toNftId(protocolId);
61
+ _getStakingServiceStorage()._staking.registerTarget(
62
+ protocolNftId,
63
+ PROTOCOL(),
64
+ 1, // protocol is registered on mainnet
65
+ TargetManagerLib.getDefaultLockingPeriod(),
66
+ TargetManagerLib.getDefaultRewardRate());
67
+
68
+ emit LogStakingServiceProtocolTargetRegistered(protocolNftId);
69
+ }
70
+
71
+
72
+ function createInstanceTarget(
73
+ NftId targetNftId,
74
+ Seconds initialLockingPeriod,
75
+ UFixed initialRewardRate
76
+ )
77
+ external
78
+ virtual
79
+ // restricted // TODO re-enable once services have stable roles
80
+ {
81
+ uint256 chainId = block.chainid;
82
+ _getStakingServiceStorage()._staking.registerTarget(
83
+ targetNftId,
84
+ INSTANCE(),
85
+ chainId,
86
+ initialLockingPeriod,
87
+ initialRewardRate);
88
+
89
+ emit LogStakingServiceInstanceTargetRegistered(targetNftId, chainId);
90
+ }
91
+
92
+ function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod)
93
+ external
94
+ virtual
95
+ onlyNftOwner(targetNftId)
96
+ {
97
+ _getStakingServiceStorage()._staking.setLockingPeriod(
98
+ targetNftId, lockingPeriod);
99
+ }
100
+
101
+ function setRewardRate(NftId targetNftId, UFixed rewardRate)
102
+ external
103
+ virtual
104
+ onlyNftOwner(targetNftId)
105
+ {
106
+ _getStakingServiceStorage()._staking.setRewardRate(
107
+ targetNftId, rewardRate);
108
+
109
+ }
110
+
111
+
112
+ /// @dev creates a new stake to the specified target nft id with the provided dip amount
113
+ /// the target nft id must have been registered as an active staking target prior to this call
114
+ /// the sender of this transaction becomes the stake owner via the minted nft.
115
+ /// to create the new stake balance and allowance of the staker need to cover the dip amount
116
+ /// the allowance needs to be on the token handler of the staking contract (getTokenHandler())
117
+ /// this is a permissionless function.
118
+ function create(
119
+ NftId targetNftId,
120
+ Amount dipAmount
121
+ )
122
+ external
123
+ virtual
124
+ // restricted // TODO re-enable once services have stable roles
125
+ returns (
126
+ NftId stakeNftId
127
+ )
128
+ {
129
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
130
+ StakingReader stakingReader = $._staking.getStakingReader();
131
+ address stakeOwner = msg.sender;
132
+
133
+ StakeManagerLib.checkActiveTarget(
134
+ stakingReader,
135
+ targetNftId);
136
+
137
+ // register new stake object with registry
138
+ stakeNftId = $._registryService.registerStake(
139
+ IRegistry.ObjectInfo({
140
+ nftId: NftIdLib.zero(),
141
+ parentNftId: targetNftId,
142
+ objectType: STAKE(),
143
+ isInterceptor: false,
144
+ objectAddress: address(0),
145
+ initialOwner: stakeOwner,
146
+ data: ""
147
+ }));
148
+
149
+ // create stake info with staking
150
+ $._staking.registerStake(
151
+ stakeNftId,
152
+ targetNftId,
153
+ dipAmount);
154
+
155
+ // collect staked dip by staking
156
+ $._staking.collectDipAmount(
157
+ stakeOwner,
158
+ dipAmount);
159
+
160
+ emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
161
+ }
162
+
163
+
164
+ function stake(
165
+ NftId stakeNftId,
166
+ Amount dipAmount
167
+ )
168
+ external
169
+ virtual
170
+ // restricted // TODO re-enable once services have stable roles
171
+ onlyNftOwner(stakeNftId)
172
+ {
173
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
174
+ StakingReader stakingReader = $._staking.getStakingReader();
175
+ address stakeOwner = msg.sender;
176
+
177
+ // add additional staked dips by staking
178
+ $._staking.stake(
179
+ stakeNftId,
180
+ dipAmount);
181
+
182
+ // collect staked dip by staking
183
+ $._staking.collectDipAmount(
184
+ stakeOwner,
185
+ dipAmount);
186
+
187
+ emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount);
188
+ }
189
+
190
+
191
+ function restake(
192
+ NftId stakeNftId
193
+ )
194
+ external
195
+ virtual
196
+ // restricted // TODO re-enable once services have stable roles
197
+ onlyNftOwner(stakeNftId)
198
+ {
199
+ // restake all rewards as additional stakes
200
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
201
+ $._staking.restake(stakeNftId);
202
+ }
203
+
204
+
205
+ function restakeToNewTarget(
206
+ NftId stakeNftId,
207
+ NftId newTargetNftId
208
+ )
209
+ external
210
+ virtual
211
+ // restricted // TODO re-enable once services have stable roles
212
+ onlyNftOwner(stakeNftId)
213
+ returns (
214
+ NftId newStakeNftId
215
+ )
216
+ {
217
+ // TODO implement
218
+ }
219
+
220
+
221
+ function unstake(
222
+ NftId stakeNftId,
223
+ Amount amount
224
+ )
225
+ external
226
+ virtual
227
+ {
228
+
229
+ }
230
+
231
+
232
+ function updateRewards(
233
+ NftId stakeNftId
234
+ )
235
+ external
236
+ // unpermissioned, anybody may call this function
237
+ // TODO consider to add restricted (just to be able to disable function when target is disabled)
238
+ {
239
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
240
+ $._staking.updateRewards(stakeNftId);
241
+
242
+ emit LogStakingServiceRewardsUpdated(stakeNftId);
243
+ }
244
+
245
+
246
+
247
+ function increaseTotalValueLocked(
248
+ NftId targetNftId,
249
+ address token,
250
+ Amount amount
251
+ )
252
+ external
253
+ virtual
254
+ returns (Amount totalValueLocked)
255
+ {
256
+
257
+ }
258
+
259
+
260
+ function decreaseTotalValueLocked(
261
+ NftId targetNftId,
262
+ address token,
263
+ Amount amount
264
+ )
265
+ external
266
+ virtual
267
+ returns (Amount totalValueLocked)
268
+ {
269
+
270
+ }
271
+
272
+
273
+ function setTotalValueLocked(
274
+ NftId targetNftId,
275
+ address token,
276
+ Amount amount
277
+ )
278
+ external
279
+ virtual
280
+ {
281
+
282
+ }
283
+
284
+
285
+ function getDipToken()
286
+ external
287
+ virtual
288
+ returns (IERC20Metadata dip)
289
+ {
290
+ return _getStakingServiceStorage()._dip;
291
+ }
292
+
293
+
294
+ function getTokenHandler()
295
+ external
296
+ virtual
297
+ returns (TokenHandler tokenHandler)
298
+ {
299
+ return _getStakingServiceStorage()._tokenHandler;
300
+ }
301
+
302
+
303
+ function getStaking()
304
+ external
305
+ virtual
306
+ returns (IStaking staking)
307
+ {
308
+ return _getStakingServiceStorage()._staking;
309
+ }
310
+
311
+
312
+ function _initialize(
313
+ address owner,
314
+ bytes memory data
315
+ )
316
+ internal
317
+ virtual override
318
+ initializer()
319
+ {
320
+ (
321
+ address registryAddress,
322
+ address stakingAddress
323
+ ) = abi.decode(data, (address, address));
324
+
325
+ initializeService(registryAddress, address(0), owner);
326
+
327
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
328
+ $._registryService = RegistryService(_getServiceAddress(REGISTRY()));
329
+ $._staking = _registerStaking(stakingAddress);
330
+ $._dip = $._staking.getToken();
331
+ $._tokenHandler = $._staking.getTokenHandler();
332
+
333
+ registerInterface(type(IStakingService).interfaceId);
334
+ }
335
+
336
+
337
+ function _registerStaking(
338
+ address stakingAddress
339
+ )
340
+ internal
341
+ returns (IStaking staking)
342
+ {
343
+ // check if provided staking contract is already registred
344
+ // staking contract may have been already registered by a previous major relase
345
+ IRegistry.ObjectInfo memory stakingInfo = getRegistry().getObjectInfo(stakingAddress);
346
+ if (stakingInfo.nftId.gtz()) {
347
+ // registered object but wrong type
348
+ if (stakingInfo.objectType != STAKING()) {
349
+ revert ErrorStakingServiceNotStaking(stakingAddress);
350
+ }
351
+
352
+ // return correctly registered staking contract
353
+ return IStaking(stakingAddress);
354
+ }
355
+
356
+ // check that contract implements IStaking
357
+ if(!IStaking(stakingAddress).supportsInterface(type(IStaking).interfaceId)) {
358
+ revert ErrorStakingServiceNotSupportingIStaking(stakingAddress);
359
+ }
360
+
361
+ address owner = msg.sender;
362
+ _getStakingServiceStorage()._registryService.registerStaking(
363
+ IRegisterable(stakingAddress),
364
+ owner);
365
+
366
+ return IStaking(stakingAddress);
367
+ }
368
+
369
+
370
+ function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
371
+ assembly {
372
+ $.slot := STAKING_SERVICE_LOCATION_V1
373
+ }
374
+ }
375
+ }
@@ -0,0 +1,44 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IRegistry} from "../registry/IRegistry.sol";
5
+ import {IVersionable} from "../shared/IVersionable.sol";
6
+ import {ProxyManager} from "../shared/ProxyManager.sol";
7
+ import {StakingService} from "./StakingService.sol";
8
+
9
+ contract StakingServiceManager is
10
+ ProxyManager
11
+ {
12
+
13
+ StakingService private _stakingService;
14
+
15
+ /// @dev initializes proxy manager with service implementation
16
+ constructor(
17
+ address registryAddress,
18
+ bytes32 salt
19
+ )
20
+ ProxyManager(registryAddress)
21
+ {
22
+ StakingService svc = new StakingService();
23
+ bytes memory data = abi.encode(
24
+ registryAddress,
25
+ IRegistry(registryAddress).getStakingAddress());
26
+
27
+ IVersionable versionable = deployDetermenistic(
28
+ address(svc),
29
+ data,
30
+ salt);
31
+
32
+ _stakingService = StakingService(address(versionable));
33
+ _stakingService.registerProtocolTarget();
34
+ }
35
+
36
+ //--- view functions ----------------------------------------------------//
37
+ function getStakingService()
38
+ external
39
+ view
40
+ returns (StakingService)
41
+ {
42
+ return _stakingService;
43
+ }
44
+ }