@etherisc/gif-next 0.0.2-e9148e0-933 → 0.0.2-e94f4c7-084

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 (383) hide show
  1. package/README.md +71 -14
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +842 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +946 -219
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → components/IComponent.sol/IComponent.json} +303 -164
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +848 -31
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +864 -49
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +682 -9
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +825 -231
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +638 -190
  18. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  19. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  20. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  22. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  23. package/artifacts/contracts/instance/{AccessManagedSimple.sol/AccessManagedSimple.json → Cloneable.sol/Cloneable.json} +91 -2
  24. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +2137 -457
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +321 -168
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +1002 -1278
  30. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +593 -180
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +262 -247
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +501 -292
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +331 -98
  38. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/{ComponentServiceBase.sol/ComponentServiceBase.json → ComponentService.sol/ComponentService.json} +247 -180
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
  46. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
  48. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +71 -45
  50. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  53. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  54. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  58. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  59. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1060 -0
  60. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +681 -0
  62. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1289 -0
  64. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +725 -0
  66. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +1040 -0
  68. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +685 -0
  70. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1273 -215
  72. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +428 -79
  74. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +627 -0
  76. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  77. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +709 -0
  78. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  79. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +602 -0
  80. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +804 -160
  82. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  83. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +969 -0
  84. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +544 -145
  86. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +90 -391
  88. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  89. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1543 -0
  90. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +741 -0
  92. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +848 -238
  94. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +346 -85
  96. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +284 -502
  98. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +304 -99
  100. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  101. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  102. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +261 -131
  104. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +149 -230
  106. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  107. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  108. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  109. package/artifacts/contracts/registry/Registry.sol/Registry.json +275 -226
  110. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  111. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  112. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +200 -335
  114. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +298 -141
  116. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  117. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +141 -53
  120. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  121. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  122. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  123. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  124. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +40 -29
  125. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  126. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  127. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +21 -34
  129. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  130. package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
  131. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IService.sol/IService.json +86 -172
  133. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +120 -27
  137. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  138. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  139. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  140. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +294 -61
  141. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +129 -51
  143. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  144. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  145. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Service.sol/Service.json +191 -163
  147. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  148. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  149. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  150. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  151. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  153. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  155. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +129 -51
  157. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
  159. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  160. package/artifacts/contracts/test/TestService.sol/TestService.json +210 -214
  161. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  164. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +8 -190
  166. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  167. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  168. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  169. package/artifacts/contracts/types/Amount.sol/AmountLib.json +209 -0
  170. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  172. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  173. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  174. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +179 -0
  175. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  177. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
  179. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  180. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  181. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
  183. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  184. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  185. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  188. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  189. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +209 -0
  190. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
  192. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  194. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  196. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  198. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  200. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +38 -7
  202. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  203. package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
  204. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
  206. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  207. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  208. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  209. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  210. package/contracts/components/Component.sol +253 -0
  211. package/contracts/components/Distribution.sol +204 -79
  212. package/contracts/components/IComponent.sol +76 -0
  213. package/contracts/components/IDistributionComponent.sol +44 -17
  214. package/contracts/components/IPoolComponent.sol +88 -37
  215. package/contracts/components/IProductComponent.sol +10 -5
  216. package/contracts/components/Pool.sol +220 -160
  217. package/contracts/components/Product.sol +247 -160
  218. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  219. package/contracts/instance/BundleManager.sol +126 -0
  220. package/contracts/instance/Cloneable.sol +51 -0
  221. package/contracts/instance/IInstance.sol +75 -14
  222. package/contracts/instance/IInstanceService.sol +46 -8
  223. package/contracts/instance/Instance.sol +151 -284
  224. package/contracts/instance/InstanceAccessManager.sol +414 -175
  225. package/contracts/instance/InstanceReader.sol +47 -36
  226. package/contracts/instance/InstanceService.sol +405 -119
  227. package/contracts/instance/InstanceServiceManager.sol +6 -9
  228. package/contracts/instance/ObjectManager.sol +82 -0
  229. package/contracts/instance/base/ComponentService.sol +121 -0
  230. package/contracts/instance/base/KeyValueStore.sol +13 -5
  231. package/contracts/instance/base/Lifecycle.sol +23 -6
  232. package/contracts/instance/module/IAccess.sol +36 -20
  233. package/contracts/instance/module/IBundle.sol +8 -5
  234. package/contracts/instance/module/IComponents.sol +41 -0
  235. package/contracts/instance/module/IDistribution.sol +2 -0
  236. package/contracts/instance/module/IPolicy.sol +41 -9
  237. package/contracts/instance/module/ISetup.sol +9 -20
  238. package/contracts/instance/service/ApplicationService.sol +355 -0
  239. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  240. package/contracts/instance/service/BundleService.sol +443 -0
  241. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  242. package/contracts/instance/service/ClaimService.sol +239 -0
  243. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  244. package/contracts/instance/service/DistributionService.sol +374 -31
  245. package/contracts/instance/service/DistributionServiceManager.sol +7 -10
  246. package/contracts/instance/service/IApplicationService.sol +78 -0
  247. package/contracts/instance/service/IBundleService.sol +102 -0
  248. package/contracts/instance/service/IClaimService.sol +92 -0
  249. package/contracts/instance/service/IDistributionService.sol +87 -0
  250. package/contracts/instance/service/IPolicyService.sol +139 -0
  251. package/contracts/instance/service/IPoolService.sol +82 -17
  252. package/contracts/instance/service/IProductService.sol +6 -73
  253. package/contracts/instance/service/PolicyService.sol +571 -0
  254. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  255. package/contracts/instance/service/PoolService.sol +248 -106
  256. package/contracts/instance/service/PoolServiceManager.sol +6 -9
  257. package/contracts/instance/service/ProductService.sol +114 -452
  258. package/contracts/instance/service/ProductServiceManager.sol +2 -2
  259. package/contracts/registry/ChainNft.sol +9 -1
  260. package/contracts/registry/IRegistry.sol +41 -19
  261. package/contracts/registry/IRegistryService.sol +31 -13
  262. package/contracts/registry/ITransferInterceptor.sol +1 -0
  263. package/contracts/registry/Registry.sol +245 -222
  264. package/contracts/registry/RegistryAccessManager.sol +216 -0
  265. package/contracts/registry/RegistryService.sol +97 -173
  266. package/contracts/registry/RegistryServiceManager.sol +21 -39
  267. package/contracts/registry/ReleaseManager.sol +324 -0
  268. package/contracts/registry/TokenRegistry.sol +22 -17
  269. package/contracts/shared/ERC165.sol +14 -12
  270. package/contracts/shared/INftOwnable.sol +11 -10
  271. package/contracts/shared/IPolicyHolder.sol +26 -0
  272. package/contracts/shared/IRegisterable.sol +4 -6
  273. package/contracts/shared/IRegistryLinked.sol +12 -0
  274. package/contracts/shared/IService.sol +5 -4
  275. package/contracts/shared/IVersionable.sol +4 -47
  276. package/contracts/shared/NftOwnable.sol +66 -80
  277. package/contracts/shared/PolicyHolder.sol +81 -0
  278. package/contracts/shared/ProxyManager.sol +100 -25
  279. package/contracts/shared/Registerable.sol +16 -32
  280. package/contracts/shared/RegistryLinked.sol +48 -0
  281. package/contracts/shared/Service.sol +41 -24
  282. package/contracts/shared/TokenHandler.sol +11 -5
  283. package/contracts/shared/Versionable.sol +4 -92
  284. package/contracts/test/TestRegisterable.sol +1 -1
  285. package/contracts/test/TestService.sol +4 -3
  286. package/contracts/types/Amount.sol +70 -0
  287. package/contracts/types/Blocknumber.sol +1 -0
  288. package/contracts/types/ClaimId.sol +75 -0
  289. package/contracts/types/DistributorType.sol +2 -2
  290. package/contracts/types/Fee.sol +13 -5
  291. package/contracts/types/NftId.sol +8 -0
  292. package/contracts/types/NftIdSet.sol +26 -24
  293. package/contracts/types/ObjectType.sol +11 -6
  294. package/contracts/types/PayoutId.sol +82 -0
  295. package/contracts/types/Referral.sol +4 -0
  296. package/contracts/types/RoleId.sol +26 -19
  297. package/contracts/types/Seconds.sol +54 -0
  298. package/contracts/types/StateId.sol +7 -2
  299. package/contracts/types/Timestamp.sol +18 -13
  300. package/contracts/types/UFixed.sol +1 -0
  301. package/contracts/types/Version.sol +1 -0
  302. package/package.json +3 -3
  303. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  304. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
  305. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  306. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  307. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  308. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  309. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  310. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  311. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  312. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  313. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  314. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  315. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  316. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  317. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  318. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  319. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  320. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  321. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  322. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  323. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  324. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  325. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  326. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  327. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  328. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  329. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  330. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  331. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  332. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  333. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  334. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  335. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  336. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  337. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  338. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  339. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  340. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  341. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  342. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  343. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  344. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  345. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  346. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  347. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  348. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  349. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  350. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +0 -1082
  351. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  352. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  353. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  354. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  355. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  356. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  357. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  358. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
  359. package/contracts/components/BaseComponent.sol +0 -91
  360. package/contracts/components/IBaseComponent.sol +0 -25
  361. package/contracts/experiment/cloning/Cloner.sol +0 -47
  362. package/contracts/experiment/errors/Require.sol +0 -38
  363. package/contracts/experiment/errors/Revert.sol +0 -44
  364. package/contracts/experiment/inheritance/A.sol +0 -53
  365. package/contracts/experiment/inheritance/B.sol +0 -28
  366. package/contracts/experiment/inheritance/C.sol +0 -34
  367. package/contracts/experiment/inheritance/IA.sol +0 -13
  368. package/contracts/experiment/inheritance/IB.sol +0 -10
  369. package/contracts/experiment/inheritance/IC.sol +0 -12
  370. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  371. package/contracts/experiment/statemachine/ISM.sol +0 -25
  372. package/contracts/experiment/statemachine/SM.sol +0 -57
  373. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  374. package/contracts/experiment/types/TypeA.sol +0 -47
  375. package/contracts/experiment/types/TypeB.sol +0 -29
  376. package/contracts/instance/AccessManagedSimple.sol +0 -115
  377. package/contracts/instance/AccessManagerSimple.sol +0 -692
  378. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  379. package/contracts/instance/base/ComponentServiceBase.sol +0 -124
  380. package/contracts/instance/base/IInstanceBase.sol +0 -23
  381. package/contracts/instance/service/ComponentOwnerService.sol +0 -317
  382. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  383. package/contracts/shared/RegisterableUpgradable.sol +0 -16
@@ -0,0 +1,51 @@
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 {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
6
+
7
+ import {IRegistry} from "../registry/IRegistry.sol";
8
+
9
+ abstract contract Cloneable is
10
+ AccessManagedUpgradeable
11
+ {
12
+ event CloneableInitialized(address authority, address registry);
13
+
14
+ error CloneableAuthorityZero();
15
+ error CloneableRegistryInvalid(address registry);
16
+
17
+ IRegistry internal _registry;
18
+
19
+ constructor() {
20
+ _registry = IRegistry(address(0));
21
+ }
22
+
23
+ /// @dev call to initialize MUST be made in the same transaction as cloning of the contract
24
+ function initialize(
25
+ address authority,
26
+ address registry
27
+ )
28
+ public
29
+ onlyInitializing
30
+ {
31
+ // check/handle access managed
32
+ if(authority == address(0)) {
33
+ revert CloneableAuthorityZero();
34
+ }
35
+
36
+ __AccessManaged_init(authority);
37
+
38
+ // check/handle registry
39
+ if (registry.code.length == 0) {
40
+ revert CloneableRegistryInvalid(registry);
41
+ }
42
+
43
+ _registry = IRegistry(registry);
44
+
45
+ emit CloneableInitialized(authority, registry);
46
+ }
47
+
48
+ function getRegistry() external view returns (IRegistry) {
49
+ return _registry;
50
+ }
51
+ }
@@ -1,32 +1,59 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
+ import {ClaimId} from "../types/ClaimId.sol";
7
+ import {DistributorType} from "../types/DistributorType.sol";
8
+ import {PayoutId} from "../types/PayoutId.sol";
9
+ import {NftId} from "../types/NftId.sol";
10
+ import {StateId} from "../types/StateId.sol";
11
+ import {ReferralId} from "../types/Referral.sol";
12
+ import {RiskId} from "../types/RiskId.sol";
13
+ import {VersionPart} from "../types/Version.sol";
14
+ import {Key32} from "../types/Key32.sol";
15
+
16
+ import {IRegisterable} from "../shared/IRegisterable.sol";
17
+
18
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
19
+
20
+ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
21
+ import {BundleManager} from "./BundleManager.sol";
6
22
  import {InstanceReader} from "./InstanceReader.sol";
7
23
 
8
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
9
- import {IDistributionService} from "./service/IDistributionService.sol";
10
- import {IPoolService} from "./service/IPoolService.sol";
11
- import {IProductService} from "./service/IProductService.sol";
12
24
  import {IBundle} from "./module/IBundle.sol";
25
+ import {IBundleService} from "./service/IBundleService.sol";
26
+ import {IComponents} from "./module/IComponents.sol";
27
+ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
28
+ import {IKeyValueStore} from "./base/IKeyValueStore.sol";
29
+ import {IPolicy} from "./module/IPolicy.sol";
30
+ import {IDistribution} from "./module/IDistribution.sol";
31
+ import {IRisk} from "./module/IRisk.sol";
13
32
  import {ISetup} from "./module/ISetup.sol";
14
- import {NftId} from "../types/NftId.sol";
15
- import {StateId} from "../types/StateId.sol";
16
33
 
17
- interface IInstance is IERC165 {
18
34
 
19
- function getComponentOwnerService() external view returns (IComponentOwnerService);
20
- function getDistributionService() external view returns (IDistributionService);
21
- function getProductService() external view returns (IProductService);
22
- function getPoolService() external view returns (IPoolService);
35
+
36
+ interface IInstance is
37
+ IRegisterable,
38
+ ITransferInterceptor,
39
+ IAccessManaged,
40
+ IKeyValueStore
41
+ {
42
+ error ErrorInstanceInstanceAccessManagerAlreadySet(address instanceAccessManager);
43
+ error ErrorInstanceInstanceAccessManagerAuthorityMismatch(address instanceAuthority);
44
+
45
+ error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
46
+ error ErrorInstanceBundleManagerInstanceMismatch(address instance);
47
+ error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
48
+
49
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
23
50
 
24
51
  function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external;
25
52
  function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
26
53
  function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
27
54
 
28
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external;
29
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external;
55
+ function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external;
56
+ function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external;
30
57
  function updatePoolSetupState(NftId poolNftId, StateId newState) external;
31
58
 
32
59
  function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
@@ -37,5 +64,39 @@ interface IInstance is IERC165 {
37
64
  function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external;
38
65
  function updateProductSetupState(NftId productNftId, StateId newState) external;
39
66
 
67
+ function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external;
68
+ function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external;
69
+ function updateDistributorTypeState(DistributorType distributorType, StateId newState) external;
70
+
71
+ function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external;
72
+ function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external;
73
+ function updateDistributorState(NftId nftId, StateId newState) external;
74
+
75
+ function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external;
76
+ function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external;
77
+ function updateReferralState(ReferralId referralId, StateId newState) external;
78
+
79
+ function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external;
80
+ function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external;
81
+ function updateRiskState(RiskId riskId, StateId newState) external;
82
+
83
+ function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external;
84
+ function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
85
+ function updateApplicationState(NftId applicationNftId, StateId newState) external;
86
+
87
+ function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external;
88
+ function updatePolicyState(NftId policyNftId, StateId newState) external;
89
+
90
+ function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external;
91
+ function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external;
92
+ function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external;
93
+
94
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory claim) external;
95
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory claim, StateId newState) external;
96
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external;
97
+
98
+ function getMajorVersion() external pure returns (VersionPart majorVersion);
40
99
  function getInstanceReader() external view returns (InstanceReader);
100
+ function getBundleManager() external view returns (BundleManager);
101
+ function getInstanceAccessManager() external view returns (InstanceAccessManager);
41
102
  }
@@ -5,26 +5,64 @@ import {NftId} from "../types/NftId.sol";
5
5
  import {ObjectType} from "../types/ObjectType.sol";
6
6
  import {RoleId} from "../types/RoleId.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
- import {IRegistry} from "../registry/IRegistry.sol";
9
8
 
10
- import {IRegisterable} from "../shared/IRegisterable.sol";
11
- import {IBaseComponent} from "../components/IBaseComponent.sol";
12
-
13
- import {AccessManagerSimple} from "./AccessManagerSimple.sol";
9
+ import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
10
+ import {InstanceAccessManager} from "./InstanceAccessManager.sol";
14
11
  import {Instance} from "./Instance.sol";
15
12
  import {InstanceReader} from "./InstanceReader.sol";
13
+ import {BundleManager} from "./BundleManager.sol";
16
14
 
17
15
  interface IInstanceService is IService {
18
16
 
19
- event LogInstanceCloned(address clonedAccessManagerAddress, address clonedInstanceAddress, address clonedInstanceReaderAddress, NftId clonedInstanceNftId);
17
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
18
+ error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
19
+ error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
20
+ error ErrorInstanceServiceMasterBundleManagerAlreadySet();
21
+ error ErrorInstanceServiceInstanceAddressZero();
22
+
23
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
24
+ error ErrorInstanceServiceInstanceReaderAddressZero();
25
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
26
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
27
+
28
+ error ErrorInstanceServiceOzAccessManagerZero();
29
+ error ErrorInstanceServiceInstanceAccessManagerZero();
30
+ error ErrorInstanceServiceInstanceReaderZero();
31
+ error ErrorInstanceServiceBundleManagerZero();
32
+
33
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
34
+ error ErrorInstanceServiceBundleManagerAuthorityMismatch();
35
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
36
+ error ErrorInstanceServiceBundleMangerInstanceMismatch();
37
+
38
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
39
+ error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
40
+ error ErrorInstanceServiceNotInstance(NftId nftId);
41
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
42
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
43
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
44
+
45
+ event LogInstanceCloned(address clonedOzAccessManager, address clonedInstanceAccessManager, address clonedInstance, address clonedBundleManager, address clonedInstanceReader, NftId clonedInstanceNftId);
20
46
 
21
47
  function createInstanceClone()
22
48
  external
23
49
  returns (
24
- AccessManagerSimple clonedAccessManager,
50
+ AccessManagerUpgradeableInitializeable clonedOzAccessManager,
51
+ InstanceAccessManager clonedInstanceAccessManager,
25
52
  Instance clonedInstance,
26
53
  NftId instanceNftId,
27
- InstanceReader clonedInstanceReader
54
+ InstanceReader clonedInstanceReader,
55
+ BundleManager clonedBundleManager
28
56
  );
57
+
58
+ function createGifTarget(
59
+ NftId instanceNftId,
60
+ address targetAddress,
61
+ string memory targetName,
62
+ bytes4[][] memory selectors,
63
+ RoleId[] memory roles
64
+ ) external;
65
+
66
+ function setComponentLocked(bool locked) external;
29
67
  }
30
68