@etherisc/gif-next 0.0.2-7f05179-874 → 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 (540) hide show
  1. package/README.md +337 -19
  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 +312 -1138
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +660 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +439 -1219
  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 +132 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1570 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1063 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +715 -0
  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/base/Cloneable.sol/Cloneable.json +190 -0
  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 +4 -0
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  41. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  43. package/artifacts/contracts/instance/{treasury/ITreasury.sol/ITreasury.json → module/IComponents.sol/IComponents.json} +2 -2
  44. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  45. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  47. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  48. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  49. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  50. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  51. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  52. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  53. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
  54. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  55. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
  56. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +684 -0
  58. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  59. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1148 -0
  60. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
  62. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  63. package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
  64. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  65. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
  66. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
  68. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
  70. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
  72. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  73. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
  74. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  75. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
  76. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +493 -0
  78. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  80. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  81. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +701 -0
  82. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  83. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +530 -0
  84. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  85. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +989 -0
  86. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  87. package/artifacts/contracts/product/IProductService.sol/IProductService.json +381 -0
  88. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
  90. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
  92. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  93. package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
  94. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  95. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
  96. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  97. package/artifacts/contracts/product/Product.sol/Product.json +1391 -0
  98. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  99. package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
  100. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
  102. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  103. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +252 -2
  104. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +737 -27
  106. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  107. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1093 -0
  108. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  109. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  110. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.json +964 -105
  112. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  113. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +322 -0
  114. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1398 -0
  116. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +705 -0
  118. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1151 -0
  120. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  121. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +653 -0
  124. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  126. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  127. package/artifacts/contracts/shared/Component.sol/Component.json +890 -0
  128. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  129. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
  130. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
  132. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +520 -0
  134. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  135. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +73 -0
  136. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  137. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +625 -0
  138. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  139. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
  140. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +699 -0
  142. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  143. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +478 -0
  144. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  145. package/artifacts/contracts/{instance/lifecycle/ILifecycle.sol/ILifecycleModule.json → shared/ILifecycle.sol/ILifecycle.json} +10 -77
  146. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  147. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +125 -0
  148. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  150. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +175 -0
  152. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  153. package/artifacts/contracts/{instance/access/IAccess.sol/IAccessCheckRole.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +11 -11
  154. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IService.sol/IService.json +327 -0
  156. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -0
  158. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  159. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
  160. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  161. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
  162. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  163. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  164. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  165. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  166. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  167. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +238 -0
  168. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  169. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  170. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  171. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +598 -0
  172. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  173. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +347 -0
  174. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  175. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  176. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  177. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +256 -220
  178. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  179. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  180. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  181. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  182. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  183. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -0
  184. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  185. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  186. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
  187. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
  188. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  189. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +884 -0
  190. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
  191. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
  192. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  193. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
  194. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  195. package/artifacts/contracts/staking/Staking.sol/Staking.json +2002 -0
  196. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  197. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +748 -0
  198. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  199. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -0
  200. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  201. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1207 -0
  202. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  203. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  204. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  205. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1690 -0
  206. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  207. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -0
  208. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  209. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  210. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  211. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  212. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  213. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  214. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  215. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  216. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  217. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  218. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  219. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  220. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  221. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  222. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  223. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
  224. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  225. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  226. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  227. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  228. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  229. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  230. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  232. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  234. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +156 -0
  236. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  237. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +174 -0
  238. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  240. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  241. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +280 -0
  242. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  243. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  244. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  245. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +479 -0
  246. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  248. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  250. package/contracts/distribution/Distribution.sol +263 -0
  251. package/contracts/distribution/DistributionService.sol +298 -0
  252. package/contracts/distribution/DistributionServiceManager.sol +54 -0
  253. package/contracts/distribution/IDistributionComponent.sol +66 -0
  254. package/contracts/distribution/IDistributionService.sol +81 -0
  255. package/contracts/instance/BundleManager.sol +126 -0
  256. package/contracts/instance/IInstance.sol +74 -22
  257. package/contracts/instance/IInstanceService.sol +83 -0
  258. package/contracts/instance/Instance.sol +209 -53
  259. package/contracts/instance/InstanceAccessManager.sol +543 -0
  260. package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
  261. package/contracts/instance/InstanceReader.sol +366 -0
  262. package/contracts/instance/InstanceService.sol +367 -0
  263. package/contracts/instance/InstanceServiceManager.sol +44 -0
  264. package/contracts/instance/InstanceStore.sol +260 -0
  265. package/contracts/instance/base/BalanceStore.sol +118 -0
  266. package/contracts/instance/base/Cloneable.sol +51 -0
  267. package/contracts/instance/base/ObjectManager.sol +82 -0
  268. package/contracts/instance/module/IAccess.sol +54 -0
  269. package/contracts/instance/module/IBundle.sol +20 -0
  270. package/contracts/instance/module/IComponents.sol +52 -0
  271. package/contracts/instance/module/IDistribution.sol +42 -0
  272. package/contracts/instance/module/IPolicy.sol +84 -0
  273. package/contracts/instance/module/IRisk.sol +11 -0
  274. package/contracts/mock/Dip.sol +1 -1
  275. package/contracts/pool/BundleService.sol +296 -0
  276. package/contracts/pool/BundleServiceManager.sol +42 -0
  277. package/contracts/pool/IBundleService.sol +106 -0
  278. package/contracts/pool/IPoolComponent.sol +112 -0
  279. package/contracts/pool/IPoolService.sol +147 -0
  280. package/contracts/pool/Pool.sol +299 -0
  281. package/contracts/pool/PoolService.sol +424 -0
  282. package/contracts/pool/PoolServiceManager.sol +42 -0
  283. package/contracts/product/ApplicationService.sol +254 -0
  284. package/contracts/product/ApplicationServiceManager.sol +38 -0
  285. package/contracts/product/ClaimService.sol +437 -0
  286. package/contracts/product/ClaimServiceManager.sol +38 -0
  287. package/contracts/product/IApplicationService.sol +62 -0
  288. package/contracts/product/IClaimService.sol +93 -0
  289. package/contracts/product/IPolicyService.sol +78 -0
  290. package/contracts/product/IPricingService.sol +39 -0
  291. package/contracts/product/IProductComponent.sol +42 -0
  292. package/contracts/product/IProductService.sol +33 -0
  293. package/contracts/product/PolicyService.sol +473 -0
  294. package/contracts/product/PolicyServiceManager.sol +42 -0
  295. package/contracts/product/PricingService.sol +301 -0
  296. package/contracts/product/PricingServiceManager.sol +42 -0
  297. package/contracts/product/Product.sol +377 -0
  298. package/contracts/product/ProductService.sol +124 -0
  299. package/contracts/product/ProductServiceManager.sol +42 -0
  300. package/contracts/registry/ChainNft.sol +143 -62
  301. package/contracts/registry/IRegistry.sol +97 -39
  302. package/contracts/registry/IRegistryService.sol +68 -0
  303. package/contracts/registry/ITransferInterceptor.sol +7 -0
  304. package/contracts/registry/Registry.sol +523 -127
  305. package/contracts/registry/RegistryAccessManager.sol +196 -0
  306. package/contracts/registry/RegistryService.sol +266 -0
  307. package/contracts/registry/RegistryServiceManager.sol +72 -0
  308. package/contracts/registry/ReleaseManager.sol +563 -0
  309. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  310. package/contracts/registry/TokenRegistry.sol +354 -0
  311. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  312. package/contracts/shared/Component.sol +286 -0
  313. package/contracts/shared/ComponentService.sol +595 -0
  314. package/contracts/shared/ComponentServiceManager.sol +35 -0
  315. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  316. package/contracts/shared/ERC165.sol +27 -0
  317. package/contracts/shared/IComponent.sol +74 -0
  318. package/contracts/shared/IComponentService.sol +91 -0
  319. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  320. package/contracts/shared/IKeyValueStore.sol +53 -0
  321. package/contracts/shared/ILifecycle.sol +30 -0
  322. package/contracts/shared/INftOwnable.sol +23 -0
  323. package/contracts/shared/IPolicyHolder.sol +45 -0
  324. package/contracts/shared/IRegisterable.sol +15 -0
  325. package/contracts/shared/IRegistryLinked.sol +11 -0
  326. package/contracts/shared/IService.sol +18 -0
  327. package/contracts/shared/IVersionable.sol +53 -0
  328. package/contracts/shared/InstanceLinkedComponent.sol +145 -0
  329. package/contracts/shared/KeyValueStore.sol +130 -0
  330. package/contracts/shared/Lifecycle.sol +121 -0
  331. package/contracts/shared/NftIdSetManager.sol +65 -0
  332. package/contracts/shared/NftOwnable.sol +118 -0
  333. package/contracts/shared/PolicyHolder.sol +101 -0
  334. package/contracts/shared/ProxyManager.sol +195 -0
  335. package/contracts/shared/Registerable.sol +75 -0
  336. package/contracts/shared/RegistryLinked.sol +43 -0
  337. package/contracts/shared/Service.sol +77 -0
  338. package/contracts/shared/TokenHandler.sol +58 -0
  339. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  340. package/contracts/shared/Versionable.sol +59 -0
  341. package/contracts/staking/IStaking.sol +152 -0
  342. package/contracts/staking/IStakingManager.sol +15 -0
  343. package/contracts/staking/IStakingService.sol +162 -0
  344. package/contracts/staking/IStakingStore.sol +130 -0
  345. package/contracts/staking/StakeManagerLib.sol +156 -0
  346. package/contracts/staking/Staking.sol +502 -0
  347. package/contracts/staking/StakingManager.sol +65 -0
  348. package/contracts/staking/StakingReader.sol +147 -0
  349. package/contracts/staking/StakingService.sol +375 -0
  350. package/contracts/staking/StakingServiceManager.sol +44 -0
  351. package/contracts/staking/StakingStore.sol +329 -0
  352. package/contracts/staking/TargetManagerLib.sol +179 -0
  353. package/contracts/type/AddressSet.sol +58 -0
  354. package/contracts/type/Amount.sol +114 -0
  355. package/contracts/{types → type}/Blocknumber.sol +21 -3
  356. package/contracts/type/ClaimId.sol +75 -0
  357. package/contracts/type/DistributorType.sol +55 -0
  358. package/contracts/type/Fee.sol +66 -0
  359. package/contracts/type/Key32.sol +50 -0
  360. package/contracts/{types → type}/NftId.sol +40 -13
  361. package/contracts/type/NftIdSet.sol +62 -0
  362. package/contracts/{types → type}/ObjectType.sol +77 -15
  363. package/contracts/type/PayoutId.sol +82 -0
  364. package/contracts/type/Referral.sol +89 -0
  365. package/contracts/type/RiskId.sol +43 -0
  366. package/contracts/type/RoleId.sol +143 -0
  367. package/contracts/type/Seconds.sol +71 -0
  368. package/contracts/{types → type}/StateId.sol +38 -6
  369. package/contracts/{types → type}/Timestamp.sol +36 -6
  370. package/contracts/type/UFixed.sol +326 -0
  371. package/contracts/type/Version.sol +108 -0
  372. package/package.json +11 -5
  373. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  374. package/artifacts/contracts/components/Component.sol/Component.json +0 -205
  375. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  376. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  377. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  378. package/artifacts/contracts/components/IPool.sol/IPoolComponent.json +0 -255
  379. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  380. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  381. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  382. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  383. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  384. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  385. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  386. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  387. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  388. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  389. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  390. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  391. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  392. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  393. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  394. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  395. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  396. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  397. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  398. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  399. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  400. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  401. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  402. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  403. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  404. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  405. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  406. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  407. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  408. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  409. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  410. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  411. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  412. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  413. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  414. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  416. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  417. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  418. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  419. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  420. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  421. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  422. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  423. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  424. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  425. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  426. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  427. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  428. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  429. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  430. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  431. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  432. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  433. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  434. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  435. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  436. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  437. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  438. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  439. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  440. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  441. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  442. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  443. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  444. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  445. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  446. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  447. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  448. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  449. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  450. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  451. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  452. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  453. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  454. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  455. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  456. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  457. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  458. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  459. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  460. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  461. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  462. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  463. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  464. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  465. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  466. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  467. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  468. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  469. package/artifacts/contracts/mock/Dip.sol/DIP.dbg.json +0 -4
  470. package/artifacts/contracts/mock/Dip.sol/DIP.json +0 -338
  471. package/artifacts/contracts/mock/TestPool.sol/TestPool.dbg.json +0 -4
  472. package/artifacts/contracts/mock/TestPool.sol/TestPool.json +0 -294
  473. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.dbg.json +0 -4
  474. package/artifacts/contracts/mock/TestProduct.sol/TestProduct.json +0 -384
  475. package/artifacts/contracts/mock/Usdc.sol/USDC.dbg.json +0 -4
  476. package/artifacts/contracts/mock/Usdc.sol/USDC.json +0 -338
  477. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  478. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  479. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  480. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  481. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  482. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  483. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  484. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  485. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  486. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  487. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  488. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  489. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  490. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  491. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  492. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -92
  493. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  494. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  495. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  496. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -174
  497. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  498. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  499. package/contracts/components/Component.sol +0 -77
  500. package/contracts/components/IPool.sol +0 -15
  501. package/contracts/components/IProduct.sol +0 -16
  502. package/contracts/components/Pool.sol +0 -52
  503. package/contracts/components/Product.sol +0 -89
  504. package/contracts/experiment/errors/Require.sol +0 -38
  505. package/contracts/experiment/errors/Revert.sol +0 -44
  506. package/contracts/experiment/inheritance/A.sol +0 -53
  507. package/contracts/experiment/inheritance/B.sol +0 -28
  508. package/contracts/experiment/inheritance/C.sol +0 -34
  509. package/contracts/experiment/inheritance/IA.sol +0 -13
  510. package/contracts/experiment/inheritance/IB.sol +0 -10
  511. package/contracts/experiment/inheritance/IC.sol +0 -12
  512. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  513. package/contracts/experiment/statemachine/ISM.sol +0 -25
  514. package/contracts/experiment/statemachine/README.md +0 -112
  515. package/contracts/experiment/statemachine/SM.sol +0 -57
  516. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  517. package/contracts/experiment/types/TypeA.sol +0 -47
  518. package/contracts/experiment/types/TypeB.sol +0 -29
  519. package/contracts/instance/access/Access.sol +0 -165
  520. package/contracts/instance/access/IAccess.sol +0 -63
  521. package/contracts/instance/component/ComponentModule.sol +0 -274
  522. package/contracts/instance/component/IComponent.sol +0 -74
  523. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  524. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  525. package/contracts/instance/policy/IPolicy.sol +0 -50
  526. package/contracts/instance/policy/PolicyModule.sol +0 -114
  527. package/contracts/instance/pool/IPoolModule.sol +0 -23
  528. package/contracts/instance/pool/PoolModule.sol +0 -81
  529. package/contracts/instance/product/IProductService.sol +0 -36
  530. package/contracts/instance/product/ProductService.sol +0 -136
  531. package/contracts/instance/treasury/ITreasury.sol +0 -91
  532. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  533. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
  534. package/contracts/mock/TestPool.sol +0 -16
  535. package/contracts/mock/TestProduct.sol +0 -39
  536. package/contracts/mock/Usdc.sol +0 -26
  537. package/contracts/registry/IChainNft.sol +0 -21
  538. package/contracts/types/ChainId.sol +0 -38
  539. package/contracts/types/Fee.sol +0 -32
  540. package/contracts/types/UFixed.sol +0 -210
@@ -0,0 +1,162 @@
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 {IService} from "../shared/IService.sol";
8
+ import {IStaking} from "./IStaking.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {ObjectType} from "../type/ObjectType.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
12
+ import {Timestamp} from "../type/Timestamp.sol";
13
+ import {TokenHandler} from "../shared/TokenHandler.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+
16
+
17
+ interface IStakingService is IService
18
+ {
19
+
20
+ event LogStakingServiceProtocolTargetRegistered(NftId protocolNftId);
21
+ event LogStakingServiceInstanceTargetRegistered(NftId instanceNftId, uint256 chainId);
22
+ event LogStakingServiceLockingPeriodSet(NftId targetNftId, Seconds oldLockingDuration, Seconds lockingDuration);
23
+ event LogStakingServiceRewardRateSet(NftId targetNftId, UFixed oldRewardRate, UFixed rewardRate);
24
+
25
+ event LogStakingServiceStakeCreated(NftId stakeNftId, NftId targetNftId, address owner, Amount stakedAmount);
26
+ event LogStakingServiceStakeIncreased(NftId stakeNftId, address owner, Amount stakedAmount);
27
+ event LogStakingServiceRewardsUpdated(NftId stakeNftId);
28
+
29
+ // modifiers
30
+ error ErrorStakingServiceNotNftOwner(NftId nftId, address expectedOwner, address owner);
31
+ error ErrorStakingServiceNotStaking(address stakingAddress);
32
+ error ErrorStakingServiceNotSupportingIStaking(address stakingAddress);
33
+
34
+ // create
35
+ error ErrorStakingServiceZeroTargetNftId();
36
+ error ErrorStakingServiceNotTargetNftId(NftId targetNftId);
37
+ error ErrorStakingServiceNotActiveTargetNftId(NftId targetNftId);
38
+ error ErrorStakingServiceDipBalanceInsufficient(NftId targetNftId, uint256 amount, uint256 balance);
39
+ error ErrorStakingServiceDipAllowanceInsufficient(NftId targetNftId, address tokenHandler, uint256 amount, uint256 allowance);
40
+
41
+ /// @dev creates/registers an on-chain instance staking target.
42
+ /// function granted to instance service
43
+ function createInstanceTarget(
44
+ NftId targetNftId,
45
+ Seconds initialLockingPeriod,
46
+ UFixed initialRewardRate
47
+ ) external;
48
+
49
+ /// @dev set the stake locking period to the specified duration.
50
+ /// permissioned: only the owner of the specified target may set the locking period
51
+ function setLockingPeriod(NftId targetNftId, Seconds lockingPeriod) external;
52
+
53
+ /// @dev set the reward rate to the specified value
54
+ /// permissioned: only the owner of the specified target may set the locking period
55
+ function setRewardRate(NftId targetNftId, UFixed rewardRate) external;
56
+
57
+ /// @dev create a new stake with amount DIP to the specified target
58
+ /// returns the id of the newly minted stake nft
59
+ /// permissionless function
60
+ function create(
61
+ NftId targetNftId,
62
+ Amount amount
63
+ )
64
+ external
65
+ returns (
66
+ NftId stakeNftId
67
+ );
68
+
69
+
70
+ /// @dev increase an existing stake by amount DIP
71
+ /// updates the staking reward amount
72
+ /// function restricted to the current stake owner
73
+ function stake(
74
+ NftId stakeNftId,
75
+ Amount amount
76
+ )
77
+ external;
78
+
79
+
80
+ /// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
81
+ /// all related stakes and all accumulated reward DIP are transferred to the current stake holder
82
+ /// function restricted to the current stake owner
83
+ function restake(
84
+ NftId stakeNftId
85
+ )
86
+ external;
87
+
88
+
89
+ /// @dev re-stakes the current staked DIP as well as all accumulated rewards to the new stake target.
90
+ /// all related stakes and all accumulated reward DIP are transferred to the current stake holder
91
+ /// function restricted to the current stake owner
92
+ function restakeToNewTarget(
93
+ NftId stakeNftId,
94
+ NftId newTargetNftId
95
+ )
96
+ external
97
+ returns (
98
+ NftId newStakeNftId
99
+ );
100
+
101
+
102
+ /// @dev decrease an existing stake by amount DIP
103
+ /// updates the staking reward amount
104
+ /// function restricted to the current stake owner
105
+ function unstake(
106
+ NftId stakeNftId,
107
+ Amount amount
108
+ )
109
+ external;
110
+
111
+ /// @dev updates the reward balance of the stake using the current reward rate.
112
+ function updateRewards(
113
+ NftId stakeNftId
114
+ )
115
+ external;
116
+
117
+
118
+ /// @dev increases the total value locked amount for the specified target by the provided token amount.
119
+ /// function is called when a new policy is collateralized
120
+ /// function restricted to the pool service
121
+ function increaseTotalValueLocked(
122
+ NftId targetNftId,
123
+ address token,
124
+ Amount amount
125
+ )
126
+ external
127
+ returns (Amount totalValueLocked);
128
+
129
+
130
+ /// @dev decreases the total value locked amount for the specified target by the provided token amount.
131
+ /// function is called when a new policy is closed or payouts are executed
132
+ /// function restricted to the pool service
133
+ function decreaseTotalValueLocked(
134
+ NftId targetNftId,
135
+ address token,
136
+ Amount amount
137
+ )
138
+ external
139
+ returns (Amount totalValueLocked);
140
+
141
+
142
+ /// @dev sets total value locked data for a target contract on a different chain.
143
+ /// this is done via CCIP (cross chain communication)
144
+ function setTotalValueLocked(
145
+ NftId targetNftId,
146
+ address token,
147
+ Amount amount
148
+ )
149
+ external;
150
+
151
+ function getDipToken()
152
+ external
153
+ returns (IERC20Metadata dip);
154
+
155
+ function getTokenHandler()
156
+ external
157
+ returns (TokenHandler tokenHandler);
158
+
159
+ function getStaking()
160
+ external
161
+ returns (IStaking staking);
162
+ }
@@ -0,0 +1,130 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
5
+
6
+ import {Amount, AmountLib} from "../type/Amount.sol";
7
+ import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
8
+ import {ChainNft} from "../registry/ChainNft.sol";
9
+ import {Component} from "../shared/Component.sol";
10
+ import {IRegistry} from "../registry/IRegistry.sol";
11
+ import {IRegistryService} from "../registry/IRegistryService.sol";
12
+ import {IStaking} from "./IStaking.sol";
13
+ import {IVersionable} from "../shared/IVersionable.sol";
14
+ import {Key32} from "../type/Key32.sol";
15
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
16
+ import {KEEP_STATE} from "../type/StateId.sol";
17
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
18
+ import {NftId, NftIdLib} from "../type/NftId.sol";
19
+ import {NftIdSetManager} from "../shared/NftIdSetManager.sol";
20
+ import {ObjectType, INSTANCE, PROTOCOL, STAKE, STAKING, TARGET} from "../type/ObjectType.sol";
21
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
22
+ import {StakingReader} from "./StakingReader.sol";
23
+ import {TargetManagerLib} from "./TargetManagerLib.sol";
24
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
25
+ import {TokenRegistry} from "../registry/TokenRegistry.sol";
26
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
27
+ import {Version, VersionLib} from "../type/Version.sol";
28
+ import {Versionable} from "../shared/Versionable.sol";
29
+
30
+
31
+ interface IStakingStore {
32
+
33
+ // event LogStakingStoreStakesIncreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
34
+ // event LogStakingStoreStakesDecreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
35
+
36
+ // event LogStakingStoreRewardsIncreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
37
+ // event LogStakingStoreRewardsDecreased(NftId nftId, Amount addedAmount, Amount newBalance, Blocknumber lastUpdatedIn);
38
+
39
+ // event LogStakingStoreRewardsRestaked(NftId nftId, Amount amount, Amount rewardAmount, Amount rewardIncrementAmount, Amount newBalance, Blocknumber lastUpdatedIn);
40
+
41
+ // // creating and updating of balance
42
+ // error ErrorStakingStoreBalanceAlreadyInitialized(NftId nftId);
43
+ // error ErrorStakingStoreBalanceNotInitialized(NftId nftId);
44
+
45
+ //--- target specific functions ------------------------------------//
46
+
47
+ function createTarget(
48
+ NftId targetNftId,
49
+ IStaking.TargetInfo memory targetInfo
50
+ )
51
+ external;
52
+
53
+
54
+ function updateTarget(
55
+ NftId targetNftId,
56
+ IStaking.TargetInfo memory targetInfo
57
+ )
58
+ external;
59
+
60
+ //--- stake specific functions -------------------------------------//
61
+
62
+ function create(
63
+ NftId stakeNftId,
64
+ IStaking.StakeInfo memory stakeInfo,
65
+ Amount stakeAmount
66
+ )
67
+ external;
68
+
69
+ function update(
70
+ NftId stakeNftId,
71
+ IStaking.StakeInfo memory stakeInfo
72
+ )
73
+ external;
74
+
75
+ //--- general functions --------------------------------------------//
76
+
77
+
78
+ function increaseBalance(NftId nftId, Amount amount, Amount rewardIncrementAmount)
79
+ external;
80
+
81
+
82
+ function restakeRewards(
83
+ NftId nftId,
84
+ Amount rewardIncrementAmount
85
+ )
86
+ external;
87
+
88
+
89
+ function updateRewards(
90
+ NftId nftId,
91
+ Amount rewardIncrementAmount
92
+ )
93
+ external;
94
+
95
+
96
+ function claimUpTo(
97
+ NftId nftId,
98
+ Amount maxRewardAmount
99
+ )
100
+ external
101
+ returns (Amount rewardsClaimedAmount);
102
+
103
+
104
+ function unstakeUpTo(
105
+ NftId nftId,
106
+ Amount maxUnstakeAmount,
107
+ Amount maxClaimAmount
108
+ )
109
+ external
110
+ returns (
111
+ Amount unstakedAmount,
112
+ Amount claimedAmount
113
+ );
114
+
115
+ //--- view functions -----------------------------------------------//
116
+
117
+ function getTargetManager() external view returns (NftIdSetManager targetManager);
118
+
119
+ function getStakeBalance(NftId nftId) external view returns (Amount balanceAmount);
120
+ function getRewardBalance(NftId nftId) external view returns (Amount rewardAmount);
121
+ function getBalanceUpdatedAt(NftId nftId) external view returns (Timestamp updatedAt);
122
+
123
+ function getBalanceAndLastUpdatedAt(NftId nftId)
124
+ external
125
+ view
126
+ returns (
127
+ Amount stakeBalance,
128
+ Timestamp lastUpdatedAt
129
+ );
130
+ }
@@ -0,0 +1,156 @@
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, AmountLib} from "../type/Amount.sol";
7
+ import {Component} from "../shared/Component.sol";
8
+ import {IRegistry} from "../registry/IRegistry.sol";
9
+ import {IRegistryService} from "../registry/IRegistryService.sol";
10
+ import {IStaking} from "./IStaking.sol";
11
+ import {Key32} from "../type/Key32.sol";
12
+ import {NftId} from "../type/NftId.sol";
13
+ import {ObjectType, INSTANCE, PROTOCOL, TARGET} from "../type/ObjectType.sol";
14
+ import {Seconds, SecondsLib} from "../type/Seconds.sol";
15
+ import {StakingReader} from "./StakingReader.sol";
16
+ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
17
+ import {UFixed, UFixedLib} from "../type/UFixed.sol";
18
+
19
+
20
+ library StakeManagerLib {
21
+
22
+ function checkActiveTarget(
23
+ StakingReader stakingReader,
24
+ NftId targetNftId
25
+ )
26
+ public
27
+ view
28
+ {
29
+ // target nft id must be registered
30
+ if (!stakingReader.isTarget(targetNftId)) {
31
+ revert IStaking.ErrorStakingNotTarget(targetNftId);
32
+ }
33
+
34
+ // only accept stakes for active targets
35
+ if (!stakingReader.isActive(targetNftId)) {
36
+ revert IStaking.ErrorStakingTargetNotActive(targetNftId);
37
+ }
38
+ }
39
+
40
+
41
+ function checkStakeParameters(
42
+ StakingReader stakingReader,
43
+ NftId targetNftId,
44
+ Amount dipAmount
45
+ )
46
+ external
47
+ view
48
+ returns (
49
+ Timestamp lockedUntil
50
+ )
51
+ {
52
+ // target nft id must be registered
53
+ if (!stakingReader.isTarget(targetNftId)) {
54
+ revert IStaking.ErrorStakingNotTarget(targetNftId);
55
+ }
56
+
57
+ // only accept stakes for active targets
58
+ if (!stakingReader.isActive(targetNftId)) {
59
+ revert IStaking.ErrorStakingTargetNotActive(targetNftId);
60
+ }
61
+
62
+ checkDipAmount(targetNftId, dipAmount);
63
+
64
+ Timestamp currentTime = TimestampLib.blockTimestamp();
65
+ lockedUntil = currentTime.addSeconds(
66
+ stakingReader.getTargetInfo(targetNftId).lockingPeriod);
67
+ }
68
+
69
+
70
+ function checkDipAmount(
71
+ NftId targetNftId,
72
+ Amount dipAmount
73
+ )
74
+ public
75
+ pure
76
+ {
77
+ // check stake amount > 0
78
+ if (dipAmount.eqz()) {
79
+ revert IStaking.ErrorStakingStakeAmountZero(targetNftId);
80
+ }
81
+
82
+ // TODO add check for target specific max dip amount (min stake + tvl * stake rate + buffer)
83
+ }
84
+
85
+
86
+ function checkDipBalanceAndAllowance(
87
+ IERC20Metadata dip,
88
+ address owner,
89
+ address tokenHandlerAddress,
90
+ Amount dipAmount
91
+ )
92
+ public
93
+ view
94
+ {
95
+ // check balance
96
+ uint256 amount = dipAmount.toInt();
97
+ uint256 dipBalance = dip.balanceOf(owner);
98
+ if (dipBalance < amount) {
99
+ revert IStaking.ErrorStakingDipBalanceInsufficient(owner, amount, dipBalance);
100
+ }
101
+
102
+ // check allowance
103
+ uint256 dipAllowance = dip.allowance(owner, tokenHandlerAddress);
104
+ if (dipAllowance < amount) {
105
+ revert IStaking.ErrorStakingDipAllowanceInsufficient(owner, tokenHandlerAddress, amount, dipAllowance);
106
+ }
107
+ }
108
+
109
+
110
+ function calculateRewardIncrease(
111
+ StakingReader stakingReader,
112
+ NftId stakeNftId
113
+ )
114
+ public
115
+ view
116
+ returns (Amount rewardIncreaseAmount)
117
+ {
118
+ (
119
+ UFixed rewardRate,
120
+ Amount stakeAmount,
121
+ Timestamp lastUpdatedAt
122
+ ) = stakingReader.getRewardCalculationInput(stakeNftId);
123
+
124
+ Seconds duration = SecondsLib.toSeconds(
125
+ block.timestamp - lastUpdatedAt.toInt());
126
+
127
+ rewardIncreaseAmount = calculateRewardAmount(
128
+ rewardRate,
129
+ duration,
130
+ stakeAmount);
131
+ }
132
+
133
+
134
+ function calculateRewardAmount(
135
+ UFixed rewardRate,
136
+ Seconds duration,
137
+ Amount stakeAmount
138
+ )
139
+ public
140
+ pure
141
+ returns(
142
+ Amount rewardAmount
143
+ )
144
+ {
145
+ UFixed yearFraction = getYearFraction(duration);
146
+ UFixed rewardRateFraction = yearFraction * rewardRate;
147
+ UFixed amountUFixed = rewardRateFraction * stakeAmount.toUFixed();
148
+ rewardAmount = AmountLib.toAmount(amountUFixed.toInt());
149
+ }
150
+
151
+
152
+ function getYearFraction(Seconds duration) public pure returns (UFixed yearFraction) {
153
+ return UFixedLib.toUFixed(duration.toInt()) / UFixedLib.toUFixed(SecondsLib.oneYear().toInt());
154
+ }
155
+
156
+ }