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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/README.md +71 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1410 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1343 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +799 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +969 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +808 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +454 -554
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +356 -176
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +458 -3052
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +612 -181
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +132 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +504 -322
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +524 -352
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +331 -108
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3468 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +71 -45
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  42. package/artifacts/contracts/instance/module/{ISetup.sol/ISetup.json → IComponents.sol/IComponents.json} +2 -2
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  47. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  49. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1091 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +723 -0
  52. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +294 -361
  54. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  55. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1148 -0
  56. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  57. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1044 -0
  58. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  59. package/artifacts/contracts/pool/Pool.sol/Pool.json +1559 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1411 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +719 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  65. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +820 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +699 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1264 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +787 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  73. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +231 -204
  74. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +753 -0
  76. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  77. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +701 -0
  78. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  79. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +257 -288
  80. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  81. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +989 -0
  82. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  83. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +140 -86
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  85. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1132 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +731 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PricingService.sol/PricingService.json +969 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +755 -0
  92. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  93. package/artifacts/contracts/product/Product.sol/Product.json +1391 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  95. package/artifacts/contracts/product/ProductService.sol/ProductService.json +673 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +675 -0
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  99. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +340 -195
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +434 -194
  104. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  105. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  106. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  107. package/artifacts/contracts/registry/Registry.sol/Registry.json +429 -261
  108. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  109. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +322 -0
  110. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +499 -338
  112. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +320 -140
  114. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1151 -0
  116. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +352 -109
  120. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  122. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  123. package/artifacts/contracts/shared/Component.sol/Component.json +890 -0
  124. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  125. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1461 -0
  126. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +765 -0
  128. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +215 -205
  130. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  131. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  132. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  133. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +625 -0
  134. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  135. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +854 -0
  136. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  137. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +699 -0
  138. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -1
  140. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  142. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  143. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +27 -29
  144. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  146. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  147. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +8 -34
  148. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  149. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +35 -0
  150. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  151. package/artifacts/contracts/shared/IService.sol/IService.json +84 -178
  152. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  154. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  155. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1030 -0
  156. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  157. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +581 -0
  158. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  159. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  160. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  161. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  162. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +109 -29
  164. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  165. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  166. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +310 -61
  168. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +126 -53
  170. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  171. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  172. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  173. package/artifacts/contracts/shared/Service.sol/Service.json +185 -165
  174. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  175. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  176. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  177. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  178. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  180. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  181. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1435 -0
  182. package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +4 -0
  183. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → staking/IStakingManager.sol/IStakingManager.json} +10 -10
  184. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  185. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +884 -0
  186. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +4 -0
  187. package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +357 -0
  188. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  189. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +402 -0
  190. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  191. package/artifacts/contracts/staking/Staking.sol/Staking.json +2002 -0
  192. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  193. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +748 -0
  194. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  195. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -0
  196. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  197. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1207 -0
  198. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  199. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +698 -0
  200. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  201. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1690 -0
  202. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  203. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +494 -0
  204. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  205. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  206. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  207. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  208. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  209. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  210. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  211. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  212. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  213. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  214. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  215. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  216. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  217. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  218. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  219. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +185 -0
  220. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  221. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  222. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  223. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  224. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  226. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  227. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  228. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  230. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  231. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  232. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +174 -0
  234. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  236. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
  238. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  239. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  240. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  242. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  243. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  244. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  246. package/contracts/distribution/Distribution.sol +263 -0
  247. package/contracts/distribution/DistributionService.sol +298 -0
  248. package/contracts/distribution/DistributionServiceManager.sol +54 -0
  249. package/contracts/distribution/IDistributionComponent.sol +66 -0
  250. package/contracts/distribution/IDistributionService.sol +81 -0
  251. package/contracts/instance/BundleManager.sol +126 -0
  252. package/contracts/instance/IInstance.sol +62 -24
  253. package/contracts/instance/IInstanceService.sol +66 -13
  254. package/contracts/instance/Instance.sol +151 -366
  255. package/contracts/instance/InstanceAccessManager.sol +432 -177
  256. package/contracts/instance/InstanceAuthorizationsLib.sol +336 -0
  257. package/contracts/instance/InstanceReader.sol +143 -83
  258. package/contracts/instance/InstanceService.sol +309 -124
  259. package/contracts/instance/InstanceServiceManager.sol +12 -24
  260. package/contracts/instance/InstanceStore.sol +260 -0
  261. package/contracts/instance/base/BalanceStore.sol +118 -0
  262. package/contracts/instance/base/Cloneable.sol +51 -0
  263. package/contracts/instance/base/ObjectManager.sol +82 -0
  264. package/contracts/instance/module/IAccess.sol +37 -21
  265. package/contracts/instance/module/IBundle.sol +8 -8
  266. package/contracts/instance/module/IComponents.sol +52 -0
  267. package/contracts/instance/module/IDistribution.sol +7 -4
  268. package/contracts/instance/module/IPolicy.sol +56 -17
  269. package/contracts/instance/module/IRisk.sol +1 -1
  270. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  271. package/contracts/pool/BundleService.sol +296 -0
  272. package/contracts/pool/BundleServiceManager.sol +42 -0
  273. package/contracts/pool/IBundleService.sol +106 -0
  274. package/contracts/pool/IPoolComponent.sol +112 -0
  275. package/contracts/pool/IPoolService.sol +147 -0
  276. package/contracts/pool/Pool.sol +299 -0
  277. package/contracts/pool/PoolService.sol +424 -0
  278. package/contracts/pool/PoolServiceManager.sol +42 -0
  279. package/contracts/product/ApplicationService.sol +254 -0
  280. package/contracts/product/ApplicationServiceManager.sol +38 -0
  281. package/contracts/product/ClaimService.sol +437 -0
  282. package/contracts/product/ClaimServiceManager.sol +38 -0
  283. package/contracts/product/IApplicationService.sol +62 -0
  284. package/contracts/product/IClaimService.sol +93 -0
  285. package/contracts/product/IPolicyService.sol +78 -0
  286. package/contracts/product/IPricingService.sol +39 -0
  287. package/contracts/product/IProductComponent.sol +42 -0
  288. package/contracts/product/IProductService.sol +33 -0
  289. package/contracts/product/PolicyService.sol +473 -0
  290. package/contracts/product/PolicyServiceManager.sol +42 -0
  291. package/contracts/product/PricingService.sol +301 -0
  292. package/contracts/product/PricingServiceManager.sol +42 -0
  293. package/contracts/product/Product.sol +377 -0
  294. package/contracts/product/ProductService.sol +124 -0
  295. package/contracts/product/ProductServiceManager.sol +42 -0
  296. package/contracts/registry/ChainNft.sol +14 -0
  297. package/contracts/registry/IRegistry.sol +76 -45
  298. package/contracts/registry/IRegistryService.sol +51 -16
  299. package/contracts/registry/ITransferInterceptor.sol +1 -0
  300. package/contracts/registry/Registry.sol +358 -269
  301. package/contracts/registry/RegistryAccessManager.sol +196 -0
  302. package/contracts/registry/RegistryService.sol +126 -259
  303. package/contracts/registry/RegistryServiceManager.sol +35 -43
  304. package/contracts/registry/ReleaseManager.sol +563 -0
  305. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  306. package/contracts/registry/TokenRegistry.sol +300 -57
  307. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +13 -0
  308. package/contracts/shared/Component.sol +286 -0
  309. package/contracts/shared/ComponentService.sol +595 -0
  310. package/contracts/shared/ComponentServiceManager.sol +35 -0
  311. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  312. package/contracts/shared/ERC165.sol +15 -13
  313. package/contracts/shared/IComponent.sol +74 -0
  314. package/contracts/shared/IComponentService.sol +91 -0
  315. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  316. package/contracts/{instance/base → shared}/IKeyValueStore.sol +14 -10
  317. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  318. package/contracts/shared/INftOwnable.sol +12 -11
  319. package/contracts/shared/IPolicyHolder.sol +45 -0
  320. package/contracts/shared/IRegisterable.sol +4 -6
  321. package/contracts/shared/IRegistryLinked.sol +11 -0
  322. package/contracts/shared/IService.sol +8 -5
  323. package/contracts/shared/IVersionable.sol +5 -48
  324. package/contracts/shared/InstanceLinkedComponent.sol +145 -0
  325. package/contracts/shared/KeyValueStore.sol +130 -0
  326. package/contracts/{instance/base → shared}/Lifecycle.sol +28 -7
  327. package/contracts/shared/NftIdSetManager.sol +65 -0
  328. package/contracts/shared/NftOwnable.sol +65 -83
  329. package/contracts/shared/PolicyHolder.sol +101 -0
  330. package/contracts/shared/ProxyManager.sol +126 -25
  331. package/contracts/shared/Registerable.sol +26 -41
  332. package/contracts/shared/RegistryLinked.sol +43 -0
  333. package/contracts/shared/Service.sol +47 -24
  334. package/contracts/shared/TokenHandler.sol +37 -6
  335. package/contracts/shared/Versionable.sol +4 -92
  336. package/contracts/staking/IStaking.sol +152 -0
  337. package/contracts/staking/IStakingManager.sol +15 -0
  338. package/contracts/staking/IStakingService.sol +162 -0
  339. package/contracts/staking/IStakingStore.sol +130 -0
  340. package/contracts/staking/StakeManagerLib.sol +156 -0
  341. package/contracts/staking/Staking.sol +502 -0
  342. package/contracts/staking/StakingManager.sol +65 -0
  343. package/contracts/staking/StakingReader.sol +147 -0
  344. package/contracts/staking/StakingService.sol +375 -0
  345. package/contracts/staking/StakingServiceManager.sol +44 -0
  346. package/contracts/staking/StakingStore.sol +329 -0
  347. package/contracts/staking/TargetManagerLib.sol +179 -0
  348. package/contracts/{types → type}/AddressSet.sol +1 -1
  349. package/contracts/type/Amount.sol +114 -0
  350. package/contracts/{types → type}/Blocknumber.sol +21 -3
  351. package/contracts/type/ClaimId.sol +75 -0
  352. package/contracts/{types → type}/DistributorType.sol +2 -2
  353. package/contracts/{types → type}/Fee.sol +33 -23
  354. package/contracts/{types → type}/NftId.sol +18 -12
  355. package/contracts/type/NftIdSet.sol +62 -0
  356. package/contracts/{types → type}/ObjectType.sol +26 -9
  357. package/contracts/type/PayoutId.sol +82 -0
  358. package/contracts/{types → type}/Referral.sol +5 -1
  359. package/contracts/{types → type}/RiskId.sol +1 -1
  360. package/contracts/type/RoleId.sol +143 -0
  361. package/contracts/type/Seconds.sol +71 -0
  362. package/contracts/{types → type}/StateId.sol +24 -6
  363. package/contracts/{types → type}/Timestamp.sol +18 -13
  364. package/contracts/{types → type}/UFixed.sol +1 -0
  365. package/contracts/{types → type}/Version.sol +2 -1
  366. package/package.json +3 -3
  367. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  368. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  369. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -670
  370. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  371. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  372. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  373. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -204
  374. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  375. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  376. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  377. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  378. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  379. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -873
  380. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  381. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  382. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  383. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  384. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  385. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  386. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  387. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  388. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  389. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  390. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  391. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  392. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  393. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  394. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  395. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  396. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  397. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  398. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  399. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  400. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  401. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  402. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  403. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  404. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  405. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  406. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  407. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  408. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  409. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  410. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  411. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  412. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  413. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  414. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  415. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  416. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  417. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  418. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  419. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  420. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  421. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  422. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  423. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  424. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  425. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  426. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  427. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  428. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  429. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  430. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  431. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  432. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  433. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  434. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  435. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  436. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  437. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  438. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  439. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  440. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  441. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -681
  442. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  443. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -436
  444. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  445. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  446. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  447. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  448. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  449. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  450. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -820
  451. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  452. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -448
  453. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  454. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  455. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  456. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  457. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  458. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  459. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  460. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  461. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  462. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  463. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  464. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  465. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  466. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  467. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  468. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  469. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  470. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  471. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  472. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  473. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  474. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  476. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  478. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  479. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  480. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  481. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  482. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  483. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  484. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  485. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  486. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  487. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  488. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  489. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  490. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  491. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  492. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  493. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  494. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  495. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  496. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  497. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  498. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  499. package/contracts/components/BaseComponent.sol +0 -91
  500. package/contracts/components/Distribution.sol +0 -166
  501. package/contracts/components/IBaseComponent.sol +0 -25
  502. package/contracts/components/IDistributionComponent.sol +0 -46
  503. package/contracts/components/IPoolComponent.sol +0 -62
  504. package/contracts/components/IProductComponent.sol +0 -35
  505. package/contracts/components/Pool.sol +0 -247
  506. package/contracts/components/Product.sol +0 -297
  507. package/contracts/experiment/cloning/Cloner.sol +0 -47
  508. package/contracts/experiment/errors/Require.sol +0 -38
  509. package/contracts/experiment/errors/Revert.sol +0 -44
  510. package/contracts/experiment/inheritance/A.sol +0 -53
  511. package/contracts/experiment/inheritance/B.sol +0 -28
  512. package/contracts/experiment/inheritance/C.sol +0 -34
  513. package/contracts/experiment/inheritance/IA.sol +0 -13
  514. package/contracts/experiment/inheritance/IB.sol +0 -10
  515. package/contracts/experiment/inheritance/IC.sol +0 -12
  516. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  517. package/contracts/experiment/statemachine/ISM.sol +0 -25
  518. package/contracts/experiment/statemachine/SM.sol +0 -57
  519. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  520. package/contracts/experiment/types/TypeA.sol +0 -47
  521. package/contracts/experiment/types/TypeB.sol +0 -29
  522. package/contracts/instance/AccessManagedSimple.sol +0 -115
  523. package/contracts/instance/AccessManagerSimple.sol +0 -692
  524. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  525. package/contracts/instance/base/ComponentServiceBase.sol +0 -60
  526. package/contracts/instance/base/IInstanceBase.sol +0 -23
  527. package/contracts/instance/base/KeyValueStore.sol +0 -172
  528. package/contracts/instance/module/ISetup.sol +0 -44
  529. package/contracts/instance/module/ITreasury.sol +0 -23
  530. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  531. package/contracts/instance/service/DistributionService.sol +0 -99
  532. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  533. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  534. package/contracts/instance/service/IDistributionService.sol +0 -12
  535. package/contracts/instance/service/IPoolService.sol +0 -37
  536. package/contracts/instance/service/IProductService.sol +0 -107
  537. package/contracts/instance/service/PoolService.sol +0 -205
  538. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  539. package/contracts/shared/ContractDeployerLib.sol +0 -72
  540. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  541. package/contracts/test/TestFee.sol +0 -25
  542. package/contracts/test/TestRegisterable.sol +0 -18
  543. package/contracts/test/TestRoleId.sol +0 -14
  544. package/contracts/test/TestService.sol +0 -24
  545. package/contracts/test/TestToken.sol +0 -26
  546. package/contracts/test/TestVersion.sol +0 -44
  547. package/contracts/test/TestVersionable.sol +0 -17
  548. package/contracts/types/ChainId.sol +0 -38
  549. package/contracts/types/NftIdSet.sol +0 -60
  550. package/contracts/types/NumberId.sol +0 -52
  551. package/contracts/types/RoleId.sol +0 -89
  552. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,286 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
6
+ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
7
+ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
8
+
9
+ import {IComponent} from "./IComponent.sol";
10
+ import {IComponents} from "../instance/module/IComponents.sol";
11
+ import {IInstanceService} from "../instance/IInstanceService.sol";
12
+ import {IInstance} from "../instance/IInstance.sol";
13
+ import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
14
+ import {InstanceReader} from "../instance/InstanceReader.sol";
15
+ import {IRegistry} from "../registry/IRegistry.sol";
16
+ import {NftId, NftIdLib} from "../type/NftId.sol";
17
+ import {ObjectType, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
18
+ import {VersionPart} from "../type/Version.sol";
19
+ import {Registerable} from "../shared/Registerable.sol";
20
+ import {RoleId, RoleIdLib} from "../type/RoleId.sol";
21
+ import {IAccess} from "../instance/module/IAccess.sol";
22
+ import {TokenHandler} from "../shared/TokenHandler.sol";
23
+ import {VersionPart} from "../type/Version.sol";
24
+
25
+ abstract contract Component is
26
+ AccessManagedUpgradeable,
27
+ Registerable,
28
+ IComponent
29
+ {
30
+ // keccak256(abi.encode(uint256(keccak256("gif-next.contracts.component.Component.sol")) - 1)) & ~bytes32(uint256(0xff));
31
+ bytes32 public constant COMPONENT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
32
+
33
+ struct ComponentStorage {
34
+ string _name; // unique (per instance) component name
35
+ IERC20Metadata _token; // token for this component
36
+ TokenHandler _tokenHandler;
37
+ address _wallet;
38
+ bool _isInterceptor;
39
+ bytes _data;
40
+ }
41
+
42
+
43
+ modifier onlyChainNft() {
44
+ if(msg.sender != getRegistry().getChainNftAddress()) {
45
+ revert ErrorComponentNotChainNft(msg.sender);
46
+ }
47
+ _;
48
+ }
49
+
50
+
51
+ function _getComponentStorage() private pure returns (ComponentStorage storage $) {
52
+ assembly {
53
+ $.slot := COMPONENT_LOCATION_V1
54
+ }
55
+ }
56
+
57
+ function initializeComponent(
58
+ address authority,
59
+ address registry,
60
+ NftId parentNftId,
61
+ string memory name,
62
+ address token,
63
+ ObjectType componentType,
64
+ bool isInterceptor,
65
+ address initialOwner,
66
+ bytes memory registryData, // writeonly data that will saved in the object info record of the registry
67
+ bytes memory componentData // other component specific data
68
+ )
69
+ public
70
+ virtual
71
+ onlyInitializing()
72
+ {
73
+ initializeRegisterable(registry, parentNftId, componentType, isInterceptor, initialOwner, registryData);
74
+ __AccessManaged_init(authority);
75
+
76
+ if (token == address(0)) {
77
+ revert ErrorComponentTokenAddressZero();
78
+ }
79
+
80
+ if (bytes(name).length == 0) {
81
+ revert ErrorComponentNameLengthZero();
82
+ }
83
+
84
+ // set component state
85
+ ComponentStorage storage $ = _getComponentStorage();
86
+ $._name = name;
87
+ $._token = IERC20Metadata(token);
88
+ $._tokenHandler = TokenHandler(address(0));
89
+ $._wallet = address(this);
90
+ $._isInterceptor = isInterceptor;
91
+ $._data = componentData;
92
+
93
+ registerInterface(type(IAccessManaged).interfaceId);
94
+ registerInterface(type(IComponent).interfaceId);
95
+ }
96
+
97
+
98
+ function approveTokenHandler(uint256 spendingLimitAmount)
99
+ external
100
+ virtual
101
+ onlyOwner
102
+ {
103
+ approveTokenHandler(address(getToken()), spendingLimitAmount);
104
+ }
105
+
106
+ function approveTokenHandler(address token, uint256 spendingLimitAmount)
107
+ public
108
+ virtual
109
+ onlyOwner
110
+ {
111
+ if(getWallet() != address(this)) {
112
+ revert ErrorComponentWalletNotComponent();
113
+ }
114
+
115
+ IERC20Metadata(token).approve(
116
+ address(getTokenHandler()),
117
+ spendingLimitAmount);
118
+
119
+ emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
120
+ }
121
+
122
+ function setWallet(address newWallet)
123
+ external
124
+ virtual
125
+ override
126
+ onlyOwner
127
+ {
128
+ // checks
129
+ address currentWallet = getWallet();
130
+ IERC20Metadata token = getToken();
131
+ uint256 currentBalance = token.balanceOf(currentWallet);
132
+
133
+ if (currentBalance > 0) {
134
+ if (currentWallet == address(this)) {
135
+ // move tokens from component smart contract to external wallet
136
+ } else {
137
+ // move tokens from external wallet to component smart contract or another external wallet
138
+ uint256 allowance = token.allowance(currentWallet, address(this));
139
+ if (allowance < currentBalance) {
140
+ revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
141
+ }
142
+ }
143
+ }
144
+
145
+ // effects
146
+ _setWallet(newWallet);
147
+
148
+ // interactions
149
+ if (currentBalance > 0) {
150
+ // transfer tokens from current wallet to new wallet
151
+ if (currentWallet == address(this)) {
152
+ // transferFrom requires self allowance too
153
+ token.approve(address(this), currentBalance);
154
+ }
155
+
156
+ SafeERC20.safeTransferFrom(token, currentWallet, newWallet, currentBalance);
157
+ emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
158
+ }
159
+ }
160
+
161
+
162
+ /// @dev callback function for nft mints
163
+ /// may only be called by chain nft contract.
164
+ /// override internal function _nftMint to implement custom behaviour
165
+ function nftMint(address to, uint256 tokenId)
166
+ external
167
+ onlyChainNft
168
+ {
169
+ _nftMint(to, tokenId);
170
+ }
171
+
172
+ /// @dev callback function for nft transfers
173
+ /// may only be called by chain nft contract.
174
+ /// override internal function _nftTransferFrom to implement custom behaviour
175
+ function nftTransferFrom(address from, address to, uint256 tokenId)
176
+ external
177
+ onlyChainNft
178
+ {
179
+ _nftTransferFrom(from, to, tokenId);
180
+ }
181
+
182
+
183
+ function getWallet() public view virtual returns (address walletAddress) {
184
+ return getComponentInfo().wallet;
185
+ }
186
+
187
+ function getTokenHandler() public virtual view returns (TokenHandler tokenHandler) {
188
+ return getComponentInfo().tokenHandler;
189
+ }
190
+
191
+ function getToken() public view virtual returns (IERC20Metadata token) {
192
+ return getComponentInfo().token;
193
+ }
194
+
195
+ function getName() public view override returns(string memory name) {
196
+ return getComponentInfo().name;
197
+ }
198
+
199
+ function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
200
+ if (isRegistered()) {
201
+ return _getComponentInfo();
202
+ } else {
203
+ return getInitialComponentInfo();
204
+ }
205
+ }
206
+
207
+ /// @dev defines initial component specification
208
+ /// overwrite this function according to your use case
209
+ function getInitialComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
210
+ return _getComponentInfo();
211
+ }
212
+
213
+
214
+ function isNftInterceptor() public virtual view returns(bool isInterceptor) {
215
+ if (isRegistered()) {
216
+ return getRegistry().getObjectInfo(address(this)).isInterceptor;
217
+ } else {
218
+ return _getComponentStorage()._isInterceptor;
219
+ }
220
+ }
221
+
222
+
223
+ function isRegistered() public virtual view returns (bool) {
224
+ return getRegistry().getNftId(address(this)).gtz();
225
+ }
226
+
227
+
228
+ /// @dev internal function for nft transfers.
229
+ /// handling logic that deals with nft transfers need to overwrite this function
230
+ function _nftMint(address to, uint256 tokenId)
231
+ internal
232
+ virtual
233
+ { }
234
+
235
+ /// @dev internal function for nft transfers.
236
+ /// handling logic that deals with nft transfers need to overwrite this function
237
+ function _nftTransferFrom(address from, address to, uint256 tokenId)
238
+ internal
239
+ virtual
240
+ { }
241
+
242
+
243
+ /// @dev depending on the source of the component information this function needs to be overwritten.
244
+ /// eg for instance linked components that externally store this information with the instance store contract
245
+ function _setWallet(address newWallet) internal virtual {
246
+ ComponentStorage storage $ = _getComponentStorage();
247
+ address currentWallet = $._wallet;
248
+
249
+ if (newWallet == address(0)) {
250
+ revert ErrorComponentWalletAddressZero();
251
+ }
252
+
253
+ if (newWallet == currentWallet) {
254
+ revert ErrorComponentWalletAddressIsSameAsCurrent();
255
+ }
256
+
257
+ $._wallet = newWallet;
258
+ emit LogComponentWalletAddressChanged(currentWallet, newWallet);
259
+
260
+ }
261
+
262
+ /// @dev for component contracts that hold its own component information
263
+ /// this function creates and sets a token hanlder for the components tokens
264
+ function _createAndSetTokenHandler()
265
+ internal
266
+ {
267
+ ComponentStorage storage $ = _getComponentStorage();
268
+ $._tokenHandler = new TokenHandler(address($._token));
269
+ }
270
+
271
+ /// @dev depending on the source of the component information this function needs to be overwritten.
272
+ /// eg for instance linked components that externally store this information with the instance store contract
273
+ function _getComponentInfo() internal virtual view returns (IComponents.ComponentInfo memory info) {
274
+ ComponentStorage storage $ = _getComponentStorage();
275
+
276
+ return IComponents.ComponentInfo({
277
+ name: $._name,
278
+ productNftId: NftIdLib.zero(),
279
+ token: $._token,
280
+ tokenHandler: $._tokenHandler,
281
+ wallet: $._wallet, // initial wallet address
282
+ data: $._data // user specific component data
283
+ });
284
+ }
285
+
286
+ }