@etherisc/gif-next 0.0.2-8d47fa1-080 → 0.0.2-8e4a894-109

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 (566) hide show
  1. package/README.md +178 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1376 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1000 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +840 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +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 +334 -1853
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +616 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +480 -2122
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1348 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1569 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +979 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +656 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2837 -0
  32. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +190 -0
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +76 -158
  36. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  38. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +120 -249
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +38 -13
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  42. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  45. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  46. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  47. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  48. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  49. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  50. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  51. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  53. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  54. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  55. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  56. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  57. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  58. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  59. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  60. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  61. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
  63. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  64. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +371 -310
  65. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  66. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1095 -0
  67. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  68. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1077 -0
  69. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  70. package/artifacts/contracts/pool/Pool.sol/Pool.json +1407 -0
  71. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  72. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  73. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  74. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
  75. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  76. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  77. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  78. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
  79. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  80. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1376 -0
  81. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  82. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
  83. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  84. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +493 -0
  85. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  86. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +743 -0
  87. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  88. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +651 -0
  89. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  90. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +291 -265
  91. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  92. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +861 -0
  93. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  94. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +227 -174
  95. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  96. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  97. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
  99. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  100. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  101. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  103. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  104. package/artifacts/contracts/product/Product.sol/Product.json +1198 -0
  105. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  106. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  107. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  108. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +60 -2
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +250 -65
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +373 -183
  115. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.json +233 -210
  119. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  120. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  122. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +503 -214
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +657 -0
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  126. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  127. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  128. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +485 -0
  129. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  130. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  131. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  132. package/artifacts/contracts/shared/Component.sol/Component.json +873 -0
  133. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  134. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +631 -0
  135. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  137. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  138. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +636 -0
  139. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  140. package/artifacts/contracts/{instance/module/component/IComponent.sol/IComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +64 -56
  141. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  142. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +189 -0
  143. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +59 -8
  145. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  146. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  147. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  148. package/artifacts/contracts/{instance/base → shared}/IService.sol/IService.json +141 -158
  149. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  150. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  151. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  152. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
  153. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  154. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +302 -0
  155. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  156. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +344 -85
  157. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  158. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +191 -12
  159. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  160. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  161. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +231 -199
  163. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  164. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +114 -0
  165. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  166. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  167. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  168. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  169. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  170. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
  171. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  172. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
  173. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  174. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  175. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  176. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  177. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  178. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  179. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  180. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  181. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  182. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  183. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  184. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  185. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  186. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  187. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  188. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  189. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  190. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +166 -0
  191. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  192. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  193. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  194. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  195. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  196. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  197. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  198. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  199. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  200. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  201. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  202. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  203. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  204. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -0
  205. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  206. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  207. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  208. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  209. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  210. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  211. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  212. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  213. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  214. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  215. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  216. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  217. package/contracts/distribution/Distribution.sol +285 -0
  218. package/contracts/distribution/DistributionService.sol +348 -0
  219. package/contracts/distribution/DistributionServiceManager.sol +51 -0
  220. package/contracts/distribution/IDistributionComponent.sol +71 -0
  221. package/contracts/distribution/IDistributionService.sol +87 -0
  222. package/contracts/instance/BundleManager.sol +126 -0
  223. package/contracts/instance/IInstance.sol +67 -44
  224. package/contracts/instance/IInstanceService.sol +73 -0
  225. package/contracts/instance/Instance.sol +213 -69
  226. package/contracts/instance/InstanceAccessManager.sol +541 -0
  227. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  228. package/contracts/instance/InstanceReader.sol +368 -0
  229. package/contracts/instance/InstanceService.sol +308 -0
  230. package/contracts/instance/InstanceServiceManager.sol +54 -0
  231. package/contracts/instance/InstanceStore.sol +211 -0
  232. package/contracts/instance/base/Cloneable.sol +51 -0
  233. package/contracts/instance/base/IKeyValueStore.sol +22 -19
  234. package/contracts/instance/base/ILifecycle.sol +4 -4
  235. package/contracts/instance/base/KeyValueStore.sol +61 -54
  236. package/contracts/instance/base/Lifecycle.sol +28 -8
  237. package/contracts/instance/base/ObjectManager.sol +82 -0
  238. package/contracts/instance/module/IAccess.sol +54 -0
  239. package/contracts/instance/module/IBundle.sol +23 -0
  240. package/contracts/instance/module/IComponents.sol +41 -0
  241. package/contracts/instance/module/IDistribution.sol +42 -0
  242. package/contracts/instance/module/IPolicy.sol +77 -0
  243. package/contracts/instance/module/IRisk.sol +11 -0
  244. package/contracts/instance/module/ISetup.sol +33 -0
  245. package/contracts/instance/module/ITreasury.sol +23 -0
  246. package/contracts/pool/BundleService.sol +382 -0
  247. package/contracts/pool/BundleServiceManager.sol +51 -0
  248. package/contracts/pool/IBundleService.sol +118 -0
  249. package/contracts/pool/IPoolComponent.sol +114 -0
  250. package/contracts/pool/IPoolService.sol +114 -0
  251. package/contracts/pool/Pool.sol +302 -0
  252. package/contracts/pool/PoolService.sol +403 -0
  253. package/contracts/pool/PoolServiceManager.sol +51 -0
  254. package/contracts/product/ApplicationService.sol +186 -0
  255. package/contracts/product/ApplicationServiceManager.sol +35 -0
  256. package/contracts/product/ClaimService.sol +437 -0
  257. package/contracts/product/ClaimServiceManager.sol +35 -0
  258. package/contracts/product/IApplicationService.sol +62 -0
  259. package/contracts/product/IClaimService.sol +90 -0
  260. package/contracts/product/IPolicyService.sol +80 -0
  261. package/contracts/product/IPricingService.sol +37 -0
  262. package/contracts/product/IProductComponent.sol +41 -0
  263. package/contracts/product/IProductService.sol +40 -0
  264. package/contracts/product/PolicyService.sol +376 -0
  265. package/contracts/product/PolicyServiceManager.sol +54 -0
  266. package/contracts/product/PricingService.sol +275 -0
  267. package/contracts/product/PricingServiceManager.sol +51 -0
  268. package/contracts/product/Product.sol +375 -0
  269. package/contracts/product/ProductService.sol +210 -0
  270. package/contracts/product/ProductServiceManager.sol +54 -0
  271. package/contracts/registry/ChainNft.sol +49 -26
  272. package/contracts/registry/IRegistry.sol +60 -34
  273. package/contracts/registry/IRegistryService.sol +53 -16
  274. package/contracts/registry/ITransferInterceptor.sol +1 -0
  275. package/contracts/registry/Registry.sol +286 -324
  276. package/contracts/registry/RegistryAccessManager.sol +216 -0
  277. package/contracts/registry/RegistryService.sol +170 -268
  278. package/contracts/registry/RegistryServiceManager.sol +60 -0
  279. package/contracts/registry/ReleaseManager.sol +324 -0
  280. package/contracts/registry/TokenRegistry.sol +116 -0
  281. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  282. package/contracts/shared/Component.sol +271 -0
  283. package/contracts/shared/ComponentService.sol +150 -0
  284. package/contracts/shared/ERC165.sol +15 -9
  285. package/contracts/shared/IComponent.sol +90 -0
  286. package/contracts/shared/INftOwnable.sol +23 -0
  287. package/contracts/shared/IPolicyHolder.sol +40 -0
  288. package/contracts/shared/IRegisterable.sol +5 -12
  289. package/contracts/shared/IRegistryLinked.sol +11 -0
  290. package/contracts/shared/IService.sol +18 -0
  291. package/contracts/shared/IVersionable.sol +5 -48
  292. package/contracts/shared/NftOwnable.sol +118 -0
  293. package/contracts/shared/PolicyHolder.sol +94 -0
  294. package/contracts/shared/ProxyManager.sol +112 -58
  295. package/contracts/shared/Registerable.sol +33 -75
  296. package/contracts/shared/RegistryLinked.sol +43 -0
  297. package/contracts/shared/Service.sol +72 -0
  298. package/contracts/shared/TokenHandler.sol +35 -0
  299. package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
  300. package/contracts/shared/Versionable.sol +5 -93
  301. package/contracts/staking/IStakingService.sol +102 -0
  302. package/contracts/staking/StakeingServiceManager.sol +37 -0
  303. package/contracts/staking/StakingService.sol +166 -0
  304. package/contracts/type/Amount.sol +109 -0
  305. package/contracts/{types → type}/Blocknumber.sol +1 -0
  306. package/contracts/type/ClaimId.sol +75 -0
  307. package/contracts/type/DistributorType.sol +55 -0
  308. package/contracts/{types → type}/Fee.sol +19 -10
  309. package/contracts/{types → type}/Key32.sol +8 -3
  310. package/contracts/{types → type}/NftId.sol +8 -0
  311. package/contracts/type/NftIdSet.sol +62 -0
  312. package/contracts/{types → type}/ObjectType.sol +45 -14
  313. package/contracts/type/PayoutId.sol +82 -0
  314. package/contracts/type/Referral.sol +89 -0
  315. package/contracts/type/RoleId.sol +97 -0
  316. package/contracts/type/Seconds.sol +54 -0
  317. package/contracts/{types → type}/StateId.sol +12 -3
  318. package/contracts/{types → type}/Timestamp.sol +22 -13
  319. package/contracts/{types → type}/UFixed.sol +129 -12
  320. package/contracts/{types → type}/Version.sol +5 -1
  321. package/package.json +6 -5
  322. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  323. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  324. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  325. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  326. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  327. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  328. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  329. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
  330. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  331. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
  332. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  333. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
  334. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  335. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  336. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  337. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  338. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  339. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  340. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  341. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  342. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  343. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  344. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  345. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  346. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  347. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  348. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  349. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  350. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  351. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  352. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  353. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  354. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  355. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  356. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  357. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  358. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  359. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  360. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  361. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  362. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  363. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  364. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  365. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  366. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  367. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  368. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  369. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  370. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  371. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  372. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  373. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  374. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  375. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -393
  376. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  377. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  378. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  379. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  380. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  381. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  382. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -380
  383. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  384. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  385. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  386. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  387. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  388. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  389. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  390. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  391. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  393. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  394. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -117
  395. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  396. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  397. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  398. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  399. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  400. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  401. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  402. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  403. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  404. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  405. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  406. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  407. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  408. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  409. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  410. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  411. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  412. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  413. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  414. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  415. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  416. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  417. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  418. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  419. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  420. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  421. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  422. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  423. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  424. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  425. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  426. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  428. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  429. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  430. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  431. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  432. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  433. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  434. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  435. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  436. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  437. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  438. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  439. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  440. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  441. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  442. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
  443. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
  444. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  445. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  446. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  447. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  448. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  449. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  450. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  451. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  452. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  453. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  454. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  455. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  456. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  457. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  458. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  459. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  460. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  461. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  462. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  463. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  464. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  465. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  466. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  467. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  468. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  469. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  470. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  471. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  472. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  473. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  474. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  475. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  477. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  478. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  479. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  480. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  481. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  482. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  483. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  484. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  485. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  486. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  487. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  488. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  489. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  490. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  491. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  492. package/contracts/components/BaseComponent.sol +0 -79
  493. package/contracts/components/Distribution.sol +0 -155
  494. package/contracts/components/IBaseComponent.sol +0 -19
  495. package/contracts/components/IDistributionComponent.sol +0 -47
  496. package/contracts/components/IPoolComponent.sol +0 -65
  497. package/contracts/components/IProductComponent.sol +0 -39
  498. package/contracts/components/Pool.sol +0 -246
  499. package/contracts/components/Product.sol +0 -299
  500. package/contracts/experiment/errors/Require.sol +0 -38
  501. package/contracts/experiment/errors/Revert.sol +0 -44
  502. package/contracts/experiment/inheritance/A.sol +0 -53
  503. package/contracts/experiment/inheritance/B.sol +0 -28
  504. package/contracts/experiment/inheritance/C.sol +0 -34
  505. package/contracts/experiment/inheritance/IA.sol +0 -13
  506. package/contracts/experiment/inheritance/IB.sol +0 -10
  507. package/contracts/experiment/inheritance/IC.sol +0 -12
  508. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  509. package/contracts/experiment/statemachine/ISM.sol +0 -25
  510. package/contracts/experiment/statemachine/SM.sol +0 -57
  511. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  512. package/contracts/experiment/types/TypeA.sol +0 -47
  513. package/contracts/experiment/types/TypeB.sol +0 -29
  514. package/contracts/instance/IInstanceLinked.sol +0 -8
  515. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  516. package/contracts/instance/base/IInstanceBase.sol +0 -23
  517. package/contracts/instance/base/IService.sol +0 -15
  518. package/contracts/instance/base/InstanceBase.sol +0 -89
  519. package/contracts/instance/base/ModuleBase.sol +0 -57
  520. package/contracts/instance/base/ServiceBase.sol +0 -43
  521. package/contracts/instance/module/access/Access.sol +0 -149
  522. package/contracts/instance/module/access/IAccess.sol +0 -53
  523. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  524. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  525. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  526. package/contracts/instance/module/component/IComponent.sol +0 -28
  527. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  528. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  529. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  530. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  531. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  532. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  533. package/contracts/instance/module/risk/IRisk.sol +0 -26
  534. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  535. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  536. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  537. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  538. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  539. package/contracts/instance/service/DistributionService.sol +0 -54
  540. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  541. package/contracts/instance/service/IDistributionService.sol +0 -12
  542. package/contracts/instance/service/IPoolService.sol +0 -37
  543. package/contracts/instance/service/IProductService.sol +0 -107
  544. package/contracts/instance/service/PoolService.sol +0 -149
  545. package/contracts/instance/service/ProductService.sol +0 -509
  546. package/contracts/registry/IChainNft.sol +0 -22
  547. package/contracts/registry/IRegistryLinked.sol +0 -8
  548. package/contracts/registry/RegistryInstaller.sol +0 -100
  549. package/contracts/shared/IOwnable.sol +0 -6
  550. package/contracts/test/TestDistribution.sol +0 -22
  551. package/contracts/test/TestFee.sol +0 -25
  552. package/contracts/test/TestPool.sol +0 -27
  553. package/contracts/test/TestProduct.sol +0 -74
  554. package/contracts/test/TestRegisterable.sol +0 -18
  555. package/contracts/test/TestRoleId.sol +0 -14
  556. package/contracts/test/TestService.sol +0 -26
  557. package/contracts/test/TestToken.sol +0 -26
  558. package/contracts/test/TestVersion.sol +0 -44
  559. package/contracts/test/TestVersionable.sol +0 -17
  560. package/contracts/test/Usdc.sol +0 -26
  561. package/contracts/types/ChainId.sol +0 -38
  562. package/contracts/types/NftIdSet.sol +0 -60
  563. package/contracts/types/ReferralId.sol +0 -48
  564. package/contracts/types/RoleId.sol +0 -38
  565. /package/contracts/{types → type}/AddressSet.sol +0 -0
  566. /package/contracts/{types → type}/RiskId.sol +0 -0
@@ -0,0 +1,43 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+ import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IRegistryLinked} from "./IRegistryLinked.sol";
7
+
8
+ contract RegistryLinked is
9
+ Initializable,
10
+ IRegistryLinked
11
+ {
12
+
13
+ IRegistry private _registry;
14
+
15
+ /// @dev initialization for upgradable contracts
16
+ // used in _initializeRegisterable
17
+ function initializeRegistryLinked(
18
+ address registryAddress
19
+ )
20
+ public
21
+ virtual
22
+ onlyInitializing()
23
+ {
24
+ if (registryAddress.code.length == 0) {
25
+ revert ErrorNotRegistry(registryAddress);
26
+ }
27
+
28
+ _registry = IRegistry(registryAddress);
29
+
30
+ try _registry.supportsInterface(type(IRegistry).interfaceId) returns (bool isRegistry) {
31
+ if (!isRegistry) {
32
+ revert ErrorNotRegistry(registryAddress);
33
+ }
34
+ } catch {
35
+ revert ErrorNotRegistry(registryAddress);
36
+ }
37
+ }
38
+
39
+
40
+ function getRegistry() public view returns (IRegistry) {
41
+ return _registry;
42
+ }
43
+ }
@@ -0,0 +1,72 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
+
7
+ import {ObjectType, REGISTRY, SERVICE} from "../type/ObjectType.sol";
8
+ import {NftId, zeroNftId} from "../type/NftId.sol";
9
+ import {Version, VersionPart, VersionLib, VersionPartLib} from "../type/Version.sol";
10
+
11
+ import {Versionable} from "./Versionable.sol";
12
+ import {IService} from "./IService.sol";
13
+ import {IVersionable} from "./IVersionable.sol";
14
+ import {Versionable} from "./Versionable.sol";
15
+ import {Registerable} from "./Registerable.sol";
16
+
17
+ import {IRegistry} from "../registry/IRegistry.sol";
18
+
19
+
20
+ /// @dev service base contract
21
+ abstract contract Service is
22
+ Registerable,
23
+ Versionable,
24
+ AccessManagedUpgradeable,
25
+ IService
26
+ {
27
+
28
+ uint8 private constant GIF_MAJOR_VERSION = 3;
29
+
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
+
40
+ function initializeService(
41
+ address registry,
42
+ address authority, // real authority for registry service adress(0) for other services
43
+ address initialOwner
44
+ )
45
+ public
46
+ virtual
47
+ onlyInitializing()
48
+ {
49
+ initializeRegisterable(
50
+ registry,
51
+ IRegistry(registry).getNftId(),
52
+ SERVICE(),
53
+ false, // is interceptor
54
+ initialOwner,
55
+ ""); // data
56
+
57
+ // externally provided authority
58
+ if(authority != address(0)) {
59
+ __AccessManaged_init(authority);
60
+ } else {
61
+ address registryServiceAddress = getRegistry().getServiceAddress(
62
+ REGISTRY(),
63
+ VersionPartLib.toVersionPart(GIF_MAJOR_VERSION));
64
+
65
+ // copy authority from already registered registry services
66
+ __AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
67
+ }
68
+
69
+ registerInterface(type(IAccessManaged).interfaceId);
70
+ registerInterface(type(IService).interfaceId);
71
+ }
72
+ }
@@ -0,0 +1,35 @@
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
+ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6
+
7
+ import {Amount} from "../type/Amount.sol";
8
+
9
+ /// @dev token specific transfer helper
10
+ /// relies internally on oz SafeERC20.safeTransferFrom
11
+ contract TokenHandler {
12
+ IERC20Metadata private _token;
13
+
14
+ constructor(address token) {
15
+ _token = IERC20Metadata(token);
16
+ }
17
+
18
+ function transfer(
19
+ address from,
20
+ address to,
21
+ Amount amount
22
+ )
23
+ external
24
+ {
25
+ SafeERC20.safeTransferFrom(_token, from, to, amount.toInt());
26
+ }
27
+
28
+ function getToken()
29
+ external
30
+ view
31
+ returns (IERC20Metadata)
32
+ {
33
+ return _token;
34
+ }
35
+ }
@@ -1,8 +1,8 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ProxyAdmin} from "@openzeppelin5/contracts/proxy/transparent/ProxyAdmin.sol";
5
- import {TransparentUpgradeableProxy, ITransparentUpgradeableProxy} from "@openzeppelin5/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
4
+ import {ProxyAdmin} from "@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol";
5
+ import {TransparentUpgradeableProxy, ITransparentUpgradeableProxy} from "@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol";
6
6
 
7
7
  import {IVersionable} from "./IVersionable.sol";
8
8
 
@@ -1,85 +1,41 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Initializable} from "@openzeppelin5/contracts/proxy/utils/Initializable.sol";
5
-
6
- import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
7
- import {Timestamp, blockTimestamp} from "../types/Timestamp.sol";
8
- import {Version, VersionPart, VersionLib} from "../types/Version.sol";
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
9
5
 
10
6
  import {IVersionable} from "./IVersionable.sol";
11
-
7
+ import {Version, VersionLib} from "../type/Version.sol";
12
8
 
13
9
 
14
10
  abstract contract Versionable is
15
11
  Initializable,
16
12
  IVersionable
17
13
  {
18
- // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Versionable.sol")) - 1)) & ~bytes32(uint256(0xff))
19
- bytes32 private constant VERSIONABLE_LOCATION_V1 = 0x4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900;
20
-
21
-
22
- /// @custom:storage-location erc7201:gif-next.contracts.shared.Versionable.sol
23
- struct VersionableStorage {
24
- mapping(Version version => VersionInfo info) _versionHistory;
25
- Version [] _versions;
26
- Version _v1;
27
- }
28
-
29
-
30
14
  constructor() {
31
15
  _disableInitializers();
32
16
  }
33
- // TODO write test where new version of private _updateVersionHistory is added and used...
34
- function initialize(
35
- address implementation,
17
+
18
+ function initializeVersionable(
36
19
  address activatedBy,
37
20
  bytes memory data
38
21
  )
39
22
  public
40
23
  initializer
41
24
  {
42
- _updateVersionHistory(implementation, activatedBy);
43
25
  _initialize(activatedBy, data);
44
26
  }
45
27
 
46
- // TODO activatedBy MUST ALWAYS be an owner?
47
- function upgrade(
48
- address implementation,
49
- address activatedBy,
28
+ function upgradeVersionable(
50
29
  bytes memory data
51
30
  )
52
31
  external
53
32
  reinitializer(VersionLib.toUint64(getVersion()))
54
33
  {
55
- _updateVersionHistory(implementation, activatedBy);
56
34
  _upgrade(data);
57
35
  }
58
36
 
59
- function isInitialized(Version _version) public override view returns(bool) {
60
- return _getVersionableStorage()._versionHistory[_version].activatedIn.toInt() > 0;
61
- }
62
-
63
37
  function getVersion() public pure virtual returns(Version);
64
38
 
65
- function getVersionCount() public view override returns(uint256) {
66
- return _getVersionableStorage()._versions.length;
67
- }
68
-
69
- function getVersion(uint256 idx) public view override returns(Version) {
70
- return _getVersionableStorage()._versions[idx];
71
- }
72
-
73
- function getVersionInfo(Version _version) public override view returns(VersionInfo memory) {
74
- return _getVersionableStorage()._versionHistory[_version];
75
- }
76
-
77
- function getInitializedVersion() public view returns(uint64) {
78
- return _getInitializedVersion();
79
- }
80
-
81
-
82
-
83
39
  // IMPORTANT each version must implement this function
84
40
  // each implementation MUST use onlyInitialising modifier
85
41
  // each implementation MUST call intializers of all base contracts...
@@ -91,7 +47,6 @@ abstract contract Versionable is
91
47
  revert();
92
48
  }
93
49
 
94
-
95
50
  // IMPORTANT each version except version "1" must implement this function
96
51
  // each implementation MUST use onlyInitialising modifier
97
52
  function _upgrade(bytes memory data)
@@ -101,47 +56,4 @@ abstract contract Versionable is
101
56
  {
102
57
  revert();
103
58
  }
104
-
105
- function _getVersionableStorage() private pure returns (VersionableStorage storage $) {
106
- assembly {
107
- $.slot := VERSIONABLE_LOCATION_V1
108
- }
109
- }
110
-
111
- // can only be called once per contract
112
- // needs to be called inside the proxy upgrade tx
113
- // TODO run reinitializer(version().toUint64()) modifier after "version()" is checked,
114
- function _updateVersionHistory(
115
- address implementation,
116
- address activatedBy
117
- )
118
- private
119
- onlyInitializing
120
- {
121
- VersionableStorage storage $ = _getVersionableStorage();
122
-
123
- uint64 version = _getInitializedVersion();
124
-
125
- Version thisVersion = getVersion();
126
-
127
- if(version == 1) {
128
- // thisVersion is alias to version "1"
129
- $._v1 = thisVersion;
130
- }
131
- else {
132
- require(thisVersion > $._v1, "INVALID VERSION");
133
- }
134
-
135
- // update version history
136
- $._versions.push(thisVersion);
137
- $._versionHistory[thisVersion] = VersionInfo(
138
- thisVersion,
139
- implementation,
140
- activatedBy,
141
- blockTimestamp(),
142
- blockNumber()
143
- );
144
-
145
- emit LogVersionableInitialized(thisVersion, implementation, activatedBy);
146
- }
147
59
  }
@@ -0,0 +1,102 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {IService} from "../shared/IService.sol";
6
+ import {NftId} from "../type/NftId.sol";
7
+ import {Seconds} from "../type/Seconds.sol";
8
+ import {Timestamp} from "../type/Timestamp.sol";
9
+
10
+
11
+ interface IStakingService is IService
12
+ {
13
+ /// @dev create a new stake with amount DIP to the specified target
14
+ /// returns the id of the newly minted stake nft
15
+ /// permissionless function
16
+ function create(
17
+ NftId targetNftId,
18
+ Amount amount
19
+ )
20
+ external
21
+ returns (
22
+ NftId stakeNftId
23
+ );
24
+
25
+ /// @dev increase an existing stake by amount DIP
26
+ /// updates the staking reward amount
27
+ /// function restricted to the current stake owner
28
+ function stake(
29
+ NftId stakeNftId,
30
+ Amount amount
31
+ )
32
+ external;
33
+
34
+ /// @dev decrease an existing stake by amount DIP
35
+ /// updates the staking reward amount
36
+ /// function restricted to the current stake owner
37
+ function unstake(
38
+ NftId stakeNftId,
39
+ Amount amount
40
+ )
41
+ external;
42
+
43
+ /// @dev closes the specified stake
44
+ /// all related stakes and all accumulated reward DIP are transferred to the current stake holder
45
+ /// function restricted to the current stake owner
46
+ function close(
47
+ NftId stakeNftId
48
+ )
49
+ external;
50
+
51
+ /// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
52
+ /// all related stakes and all accumulated reward DIP are transferred to the current stake holder
53
+ /// function restricted to the current stake owner
54
+ function reStake(
55
+ NftId stakeNftId,
56
+ NftId newTargetNftId
57
+ )
58
+ external
59
+ returns (
60
+ NftId newStakeNftId,
61
+ Timestamp unlockedAt
62
+ );
63
+
64
+ /// @dev increases the total value locked amount for the specified target by the provided token amount.
65
+ /// function is called when a new policy is collateralized
66
+ /// function restricted to the pool service
67
+ function increaseTotalValueLocked(
68
+ NftId targetNftId,
69
+ address token,
70
+ Amount amount
71
+ )
72
+ external
73
+ returns (Amount totalValueLocked);
74
+
75
+
76
+ /// @dev decreases the total value locked amount for the specified target by the provided token amount.
77
+ /// function is called when a new policy is closed or payouts are executed
78
+ /// function restricted to the pool service
79
+ function decreaseTotalValueLocked(
80
+ NftId targetNftId,
81
+ address token,
82
+ Amount amount
83
+ )
84
+ external
85
+ returns (Amount totalValueLocked);
86
+
87
+ /// @dev sends total value locked data to the global staking contract.
88
+ /// this is done via CCIP (cross chain communication)
89
+ function sendTotalValueLockedData(
90
+ NftId targetNftId,
91
+ address token
92
+ )
93
+ external;
94
+
95
+ /// @dev receives total value locked data from a staking contract on a different chain.
96
+ /// this is done via CCIP (cross chain communication)
97
+ function receiveTotalValueLockedData(
98
+ NftId targetNftId,
99
+ address token
100
+ )
101
+ external;
102
+ }
@@ -0,0 +1,37 @@
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 {StakingService} from "./StakingService.sol";
7
+
8
+ contract StakingServiceManager is
9
+ ProxyManager
10
+ {
11
+
12
+ StakingService private _stakingService;
13
+
14
+ /// @dev initializes proxy manager with service implementation
15
+ constructor(
16
+ address registryAddress
17
+ )
18
+ ProxyManager(registryAddress)
19
+ {
20
+ StakingService svc = new StakingService();
21
+ bytes memory data = abi.encode(registryAddress, address(this));
22
+ IVersionable versionable = deploy(
23
+ address(svc),
24
+ data);
25
+
26
+ _stakingService = StakingService(address(versionable));
27
+ }
28
+
29
+ //--- view functions ----------------------------------------------------//
30
+ function getStakingService()
31
+ external
32
+ view
33
+ returns (StakingService)
34
+ {
35
+ return _stakingService;
36
+ }
37
+ }
@@ -0,0 +1,166 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.19;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {IPoolService} from "../pool/IPoolService.sol";
6
+ import {IRegistry} from "../registry/IRegistry.sol";
7
+ import {IStakingService} from "./IStakingService.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType, POOL, STAKE} from "../type/ObjectType.sol";
10
+ import {Service} from "../shared/Service.sol";
11
+ import {Timestamp} from "../type/Timestamp.sol";
12
+
13
+
14
+ contract StakingService is
15
+ Service,
16
+ IStakingService
17
+ {
18
+ // TODO decide and implement string spec for location calculation
19
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.StakingService.sol")) - 1)) & ~bytes32(uint256(0xff));
20
+ bytes32 public constant STAKING_SERVICE_LOCATION_V1 = 0x6548005c3f4340f82f348c576c0ff69f7f529cadd5ad41f96aae61abceeaa300;
21
+
22
+ struct StakingServiceStorage {
23
+ IPoolService _poolService;
24
+ }
25
+
26
+ function getDomain() public pure override returns(ObjectType) {
27
+ return STAKE();
28
+ }
29
+
30
+
31
+ function create(
32
+ NftId targetNftId,
33
+ Amount amount
34
+ )
35
+ external
36
+ virtual
37
+ returns (
38
+ NftId stakeNftId
39
+ )
40
+ {
41
+
42
+ }
43
+
44
+
45
+ function stake(
46
+ NftId stakeNftId,
47
+ Amount amount
48
+ )
49
+ external
50
+ virtual
51
+ {
52
+
53
+ }
54
+
55
+
56
+ function unstake(
57
+ NftId stakeNftId,
58
+ Amount amount
59
+ )
60
+ external
61
+ virtual
62
+ {
63
+
64
+ }
65
+
66
+ function close(
67
+ NftId stakeNftId
68
+ )
69
+ external
70
+ virtual
71
+ {
72
+
73
+ }
74
+
75
+ function reStake(
76
+ NftId stakeNftId,
77
+ NftId newTargetNftId
78
+ )
79
+ external
80
+ virtual
81
+ returns (
82
+ NftId newStakeNftId,
83
+ Timestamp unlockedAt
84
+ )
85
+ {
86
+
87
+ }
88
+
89
+
90
+ function increaseTotalValueLocked(
91
+ NftId targetNftId,
92
+ address token,
93
+ Amount amount
94
+ )
95
+ external
96
+ virtual
97
+ returns (Amount totalValueLocked)
98
+ {
99
+
100
+ }
101
+
102
+
103
+ function decreaseTotalValueLocked(
104
+ NftId targetNftId,
105
+ address token,
106
+ Amount amount
107
+ )
108
+ external
109
+ virtual
110
+ returns (Amount totalValueLocked)
111
+ {
112
+
113
+ }
114
+
115
+
116
+ function sendTotalValueLockedData(
117
+ NftId targetNftId,
118
+ address token
119
+ )
120
+ external
121
+ virtual
122
+ {
123
+
124
+ }
125
+
126
+
127
+ function receiveTotalValueLockedData(
128
+ NftId targetNftId,
129
+ address token
130
+ )
131
+ external
132
+ virtual
133
+ {
134
+
135
+ }
136
+
137
+
138
+ function _initialize(
139
+ address owner,
140
+ bytes memory data
141
+ )
142
+ internal
143
+ virtual override
144
+ initializer()
145
+ {
146
+ // TODO check this, might no longer be the way, refactor if necessary
147
+ address registryAddress;
148
+ (registryAddress,) = abi.decode(data, (address, address));
149
+
150
+ StakingServiceStorage storage $ = _getStakingServiceStorage();
151
+ $._poolService = IPoolService(_getServiceAddress(POOL()));
152
+
153
+ initializeService(registryAddress, address(0), owner);
154
+ registerInterface(type(IStakingService).interfaceId);
155
+ }
156
+
157
+ function _getServiceAddress(ObjectType domain) internal view returns (address) {
158
+ return getRegistry().getServiceAddress(domain, getVersion().toMajorPart());
159
+ }
160
+
161
+ function _getStakingServiceStorage() private pure returns (StakingServiceStorage storage $) {
162
+ assembly {
163
+ $.slot := STAKING_SERVICE_LOCATION_V1
164
+ }
165
+ }
166
+ }