@etherisc/gif-next 0.0.2-ec436bf-674 → 0.0.2-ed1536c-164

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} +196 -216
  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 +34 -42
  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 +14 -12
  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 +7 -4
  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 +45 -23
  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/type/Amount.sol +114 -0
  349. package/contracts/{types → type}/Blocknumber.sol +20 -2
  350. package/contracts/type/ClaimId.sol +75 -0
  351. package/contracts/{types → type}/DistributorType.sol +2 -2
  352. package/contracts/{types → type}/Fee.sol +32 -22
  353. package/contracts/{types → type}/NftId.sol +17 -11
  354. package/contracts/type/NftIdSet.sol +62 -0
  355. package/contracts/{types → type}/ObjectType.sol +26 -9
  356. package/contracts/type/PayoutId.sol +82 -0
  357. package/contracts/{types → type}/Referral.sol +4 -0
  358. package/contracts/type/RoleId.sol +143 -0
  359. package/contracts/type/Seconds.sol +71 -0
  360. package/contracts/{types → type}/StateId.sol +24 -6
  361. package/contracts/{types → type}/Timestamp.sol +18 -13
  362. package/contracts/{types → type}/UFixed.sol +1 -0
  363. package/contracts/{types → type}/Version.sol +1 -0
  364. package/package.json +3 -3
  365. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  366. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  367. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  368. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  369. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  370. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  371. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  372. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  373. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  374. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  375. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  376. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  377. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -782
  378. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  379. package/artifacts/contracts/components/Product.sol/Product.json +0 -775
  380. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  381. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  382. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  383. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  384. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  385. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  386. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  387. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  388. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  389. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  390. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  391. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  392. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  393. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  394. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  395. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  396. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  397. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  398. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  399. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  400. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  401. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  402. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  403. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  404. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  405. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  406. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  407. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  408. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  409. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  410. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  411. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  412. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  413. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  414. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  415. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  416. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  417. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  418. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  419. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  420. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  421. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  422. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  423. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  424. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  425. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  426. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  427. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  428. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  429. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  430. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  431. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  432. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  433. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  434. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  435. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  436. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  437. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  438. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  439. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  440. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  441. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -448
  442. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  443. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  444. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  445. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  446. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  447. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  448. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -855
  449. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  450. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
  451. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  452. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  453. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  454. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  455. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  456. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  457. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  458. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  459. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  460. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  461. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  462. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  463. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  464. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  465. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  466. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  467. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  468. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  469. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  470. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  471. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  472. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  474. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  476. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  478. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  479. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  480. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  481. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  482. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  483. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  484. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  485. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  486. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  487. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  488. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  489. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  490. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  491. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  492. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  493. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  494. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  495. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  496. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  497. package/contracts/components/BaseComponent.sol +0 -91
  498. package/contracts/components/Distribution.sol +0 -160
  499. package/contracts/components/IBaseComponent.sol +0 -25
  500. package/contracts/components/IDistributionComponent.sol +0 -44
  501. package/contracts/components/IPoolComponent.sol +0 -62
  502. package/contracts/components/IProductComponent.sol +0 -35
  503. package/contracts/components/Pool.sol +0 -243
  504. package/contracts/components/Product.sol +0 -297
  505. package/contracts/experiment/cloning/Cloner.sol +0 -47
  506. package/contracts/experiment/errors/Require.sol +0 -38
  507. package/contracts/experiment/errors/Revert.sol +0 -44
  508. package/contracts/experiment/inheritance/A.sol +0 -53
  509. package/contracts/experiment/inheritance/B.sol +0 -28
  510. package/contracts/experiment/inheritance/C.sol +0 -34
  511. package/contracts/experiment/inheritance/IA.sol +0 -13
  512. package/contracts/experiment/inheritance/IB.sol +0 -10
  513. package/contracts/experiment/inheritance/IC.sol +0 -12
  514. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  515. package/contracts/experiment/statemachine/ISM.sol +0 -25
  516. package/contracts/experiment/statemachine/SM.sol +0 -57
  517. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  518. package/contracts/experiment/types/TypeA.sol +0 -47
  519. package/contracts/experiment/types/TypeB.sol +0 -29
  520. package/contracts/instance/AccessManagedSimple.sol +0 -115
  521. package/contracts/instance/AccessManagerSimple.sol +0 -692
  522. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  523. package/contracts/instance/base/ComponentServiceBase.sol +0 -118
  524. package/contracts/instance/base/IInstanceBase.sol +0 -23
  525. package/contracts/instance/base/KeyValueStore.sol +0 -172
  526. package/contracts/instance/module/ISetup.sol +0 -44
  527. package/contracts/instance/module/ITreasury.sol +0 -23
  528. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  529. package/contracts/instance/service/DistributionService.sol +0 -87
  530. package/contracts/instance/service/DistributionServiceManager.sol +0 -53
  531. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  532. package/contracts/instance/service/IDistributionService.sol +0 -12
  533. package/contracts/instance/service/IPoolService.sol +0 -37
  534. package/contracts/instance/service/IProductService.sol +0 -107
  535. package/contracts/instance/service/PoolService.sol +0 -193
  536. package/contracts/instance/service/PoolServiceManager.sol +0 -53
  537. package/contracts/shared/ContractDeployerLib.sol +0 -72
  538. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  539. package/contracts/test/TestFee.sol +0 -25
  540. package/contracts/test/TestRegisterable.sol +0 -18
  541. package/contracts/test/TestRoleId.sol +0 -14
  542. package/contracts/test/TestService.sol +0 -24
  543. package/contracts/test/TestToken.sol +0 -26
  544. package/contracts/test/TestVersion.sol +0 -44
  545. package/contracts/test/TestVersionable.sol +0 -17
  546. package/contracts/types/ChainId.sol +0 -38
  547. package/contracts/types/NftIdSet.sol +0 -60
  548. package/contracts/types/NumberId.sol +0 -52
  549. package/contracts/types/RoleId.sol +0 -89
  550. /package/contracts/{types → type}/AddressSet.sol +0 -0
  551. /package/contracts/{types → type}/Key32.sol +0 -0
  552. /package/contracts/{types → type}/RiskId.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
+ }