@etherisc/gif-next 0.0.2-ce2fc91-485 → 0.0.2-ce8407f-016

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 (325) hide show
  1. package/README.md +71 -25
  2. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +115 -48
  4. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  5. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  6. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  7. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  8. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  9. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  10. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  11. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  12. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  13. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  14. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  15. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  16. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  20. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  22. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  24. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +4 -0
  25. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +101 -0
  26. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +4 -0
  27. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +1119 -0
  28. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  29. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  30. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  31. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -1907
  32. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  33. package/artifacts/contracts/instance/Instance.sol/Instance.json +2428 -1138
  34. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  35. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +917 -0
  36. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  37. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +878 -0
  38. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  39. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +117 -0
  40. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +50 -55
  42. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/IService.sol/IService.json +174 -53
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  46. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +156 -112
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  48. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
  49. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
  50. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +220 -52
  51. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  53. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  54. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  55. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  56. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IDistribution.sol/IDistribution.json} +2 -2
  57. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  58. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  59. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  60. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  61. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  62. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  63. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  64. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  65. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  66. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +141 -12
  67. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  68. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
  69. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  70. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +298 -39
  71. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  72. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +745 -0
  73. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  74. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  75. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  76. package/artifacts/contracts/registry/Registry.sol/Registry.json +489 -120
  77. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  78. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1013 -0
  79. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  80. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +476 -0
  81. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  82. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  83. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  84. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  85. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  86. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  87. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  88. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  89. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  90. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  91. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  92. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  93. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  94. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  95. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  96. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  97. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  98. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  99. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  100. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  101. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  102. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  103. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  104. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  105. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  106. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  107. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  108. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +5 -111
  109. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  110. package/artifacts/contracts/test/TestService.sol/TestService.json +283 -62
  111. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  112. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  113. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  114. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  115. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +103 -23
  116. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  117. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  118. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  119. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  120. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  121. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  122. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  123. package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
  124. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  125. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  126. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  127. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  128. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  129. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  130. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  131. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  132. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  133. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  134. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  135. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  136. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  137. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  138. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  139. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  140. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  141. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  142. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  143. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  144. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  145. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  146. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  147. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  148. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  149. package/contracts/components/IBaseComponent.sol +4 -4
  150. package/contracts/instance/AccessManagedSimple.sol +114 -0
  151. package/contracts/instance/AccessManagerSimple.sol +682 -0
  152. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  153. package/contracts/instance/IInstance.sol +3 -49
  154. package/contracts/instance/Instance.sol +378 -54
  155. package/contracts/instance/InstanceAccessManager.sol +288 -0
  156. package/contracts/instance/InstanceReader.sol +235 -0
  157. package/contracts/instance/InstanceService.sol +45 -0
  158. package/contracts/instance/base/IKeyValueStore.sol +10 -11
  159. package/contracts/instance/base/ILifecycle.sol +3 -3
  160. package/contracts/instance/base/KeyValueStore.sol +50 -18
  161. package/contracts/instance/base/Lifecycle.sol +16 -11
  162. package/contracts/instance/base/ServiceBase.sol +20 -13
  163. package/contracts/instance/module/IAccess.sol +38 -0
  164. package/contracts/instance/module/IBundle.sol +19 -0
  165. package/contracts/instance/module/IDistribution.sol +39 -0
  166. package/contracts/instance/module/IPolicy.sol +45 -0
  167. package/contracts/instance/module/IRisk.sol +11 -0
  168. package/contracts/instance/module/ISetup.sol +41 -0
  169. package/contracts/instance/module/ITreasury.sol +23 -0
  170. package/contracts/registry/ChainNft.sol +43 -15
  171. package/contracts/registry/IChainNft.sol +3 -2
  172. package/contracts/registry/IRegistry.sol +42 -26
  173. package/contracts/registry/IRegistryService.sol +29 -0
  174. package/contracts/registry/ITransferInterceptor.sol +6 -0
  175. package/contracts/registry/Registry.sol +384 -274
  176. package/contracts/registry/RegistryService.sol +369 -0
  177. package/contracts/registry/RegistryServiceManager.sol +43 -0
  178. package/contracts/shared/ContractDeployerLib.sol +72 -0
  179. package/contracts/shared/ERC165.sol +1 -1
  180. package/contracts/shared/INftOwnable.sol +22 -0
  181. package/contracts/shared/IRegisterable.sol +9 -16
  182. package/contracts/shared/IVersionable.sol +55 -11
  183. package/contracts/shared/NftOwnable.sol +136 -0
  184. package/contracts/shared/ProxyManager.sol +94 -0
  185. package/contracts/shared/Registerable.sol +62 -59
  186. package/contracts/shared/TokenHandler.sol +27 -0
  187. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  188. package/contracts/shared/Versionable.sol +113 -55
  189. package/contracts/test/TestRegisterable.sol +5 -6
  190. package/contracts/test/TestRoleId.sol +6 -6
  191. package/contracts/test/TestService.sol +5 -11
  192. package/contracts/types/DistributorType.sol +55 -0
  193. package/contracts/types/Fee.sol +8 -3
  194. package/contracts/types/Key32.sol +8 -3
  195. package/contracts/types/NumberId.sol +52 -0
  196. package/contracts/types/ObjectType.sol +44 -11
  197. package/contracts/types/Referral.sol +85 -0
  198. package/contracts/types/RiskId.sol +43 -0
  199. package/contracts/types/RoleId.sol +47 -10
  200. package/contracts/types/StateId.sol +1 -1
  201. package/contracts/types/Timestamp.sol +7 -3
  202. package/contracts/types/Version.sol +9 -0
  203. package/package.json +1 -1
  204. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  205. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  206. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  207. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  208. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  209. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  210. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  211. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
  212. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  213. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  214. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  215. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  216. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  217. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  218. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  219. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  220. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  221. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +0 -326
  222. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  223. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  224. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  225. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  226. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  227. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  228. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  229. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  230. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  231. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  232. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  233. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  234. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  235. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  236. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  237. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  238. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  239. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  240. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -241
  241. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  242. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  243. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  244. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -241
  245. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  246. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  247. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -271
  248. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  249. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -271
  250. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  251. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  252. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  253. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  254. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  255. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  256. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  257. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  258. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  259. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  260. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  261. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  262. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  263. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  264. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  265. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  266. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  267. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  268. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  269. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -507
  270. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  271. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -364
  272. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  273. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  274. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  275. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +0 -477
  276. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  277. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  278. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  279. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  280. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  281. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  282. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  283. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  284. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  285. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  286. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  287. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  288. package/contracts/components/BaseComponent.sol +0 -88
  289. package/contracts/components/IPoolComponent.sol +0 -57
  290. package/contracts/components/IProductComponent.sol +0 -19
  291. package/contracts/components/Pool.sol +0 -174
  292. package/contracts/components/Product.sol +0 -117
  293. package/contracts/experiment/statemachine/README.md +0 -112
  294. package/contracts/instance/IInstanceLinked.sol +0 -8
  295. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  296. package/contracts/instance/base/IInstanceBase.sol +0 -14
  297. package/contracts/instance/base/InstanceBase.sol +0 -80
  298. package/contracts/instance/base/ModuleBase.sol +0 -52
  299. package/contracts/instance/module/access/Access.sol +0 -149
  300. package/contracts/instance/module/access/IAccess.sol +0 -53
  301. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  302. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  303. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  304. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  305. package/contracts/instance/module/component/ComponentModule.sol +0 -104
  306. package/contracts/instance/module/component/IComponent.sol +0 -63
  307. package/contracts/instance/module/policy/IPolicy.sol +0 -61
  308. package/contracts/instance/module/policy/PolicyModule.sol +0 -77
  309. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  310. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  311. package/contracts/instance/module/risk/IRisk.sol +0 -10
  312. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  313. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  314. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  315. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  316. package/contracts/instance/service/ComponentOwnerService.sol +0 -176
  317. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  318. package/contracts/instance/service/IPoolService.sol +0 -30
  319. package/contracts/instance/service/IProductService.sol +0 -58
  320. package/contracts/instance/service/PoolService.sol +0 -123
  321. package/contracts/instance/service/ProductService.sol +0 -354
  322. package/contracts/registry/IRegistryLinked.sol +0 -8
  323. package/contracts/shared/IOwnable.sol +0 -6
  324. package/contracts/test/TestPool.sol +0 -22
  325. package/contracts/test/TestProduct.sol +0 -44
@@ -1,77 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../../registry/IRegistry.sol";
5
-
6
- import {IProductService} from "../../service/IProductService.sol";
7
- import {IPolicy, IPolicyModule} from "./IPolicy.sol";
8
- import {ObjectType, POLICY} from "../../../types/ObjectType.sol";
9
- import {APPLIED, ACTIVE, UNDERWRITTEN} from "../../../types/StateId.sol";
10
- import {NftId, NftIdLib} from "../../../types/NftId.sol";
11
- import {Timestamp, blockTimestamp, zeroTimestamp} from "../../../types/Timestamp.sol";
12
- import {Blocknumber, blockNumber} from "../../../types/Blocknumber.sol";
13
-
14
- abstract contract PolicyModule is IPolicyModule {
15
- using NftIdLib for NftId;
16
-
17
- mapping(NftId nftId => PolicyInfo info) private _policyInfo;
18
-
19
- // TODO find a better place to avoid dupliation
20
- modifier onlyProductService2() {
21
- require(
22
- msg.sender == address(this.getProductService()),
23
- "ERROR:POL-001:NOT_PRODUCT_SERVICE"
24
- );
25
- _;
26
- }
27
-
28
- function createApplication(
29
- NftId productNftId,
30
- NftId policyNftId,
31
- uint256 sumInsuredAmount,
32
- uint256 premiumAmount,
33
- uint256 lifetime,
34
- NftId bundleNftId
35
- )
36
- external
37
- onlyProductService2
38
- override
39
- {
40
- _policyInfo[policyNftId] = PolicyInfo(
41
- policyNftId,
42
- productNftId,
43
- bundleNftId,
44
- address(0), // beneficiary = policy nft holder
45
- // _lifecycleModule.getInitialState(POLICY()),
46
- APPLIED(),
47
- sumInsuredAmount,
48
- premiumAmount,
49
- 0, // premium paid amount
50
- lifetime,
51
- "", // applicationData
52
- "", // policyData
53
- blockTimestamp(), // createdAt
54
- zeroTimestamp(), // activatedAt
55
- zeroTimestamp(), // expiredAt
56
- zeroTimestamp(), // closedAt
57
- blockNumber() // updatedIn
58
- );
59
-
60
- // TODO add logging
61
- }
62
-
63
- function setPolicyInfo(PolicyInfo memory policyInfo)
64
- external
65
- override
66
- onlyProductService2
67
- {
68
- _policyInfo[policyInfo.nftId] = policyInfo;
69
- }
70
-
71
- function getPolicyInfo(
72
- NftId nftId
73
- ) external view returns (PolicyInfo memory info) {
74
- return _policyInfo[nftId];
75
- }
76
-
77
- }
@@ -1,41 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../../registry/IRegistry.sol";
5
- import {NftId} from "../../../types/NftId.sol";
6
- import {UFixed} from "../../../types/UFixed.sol";
7
- import {IProductService} from "../../service/IProductService.sol";
8
- import {IPoolService} from "../../service/IPoolService.sol";
9
-
10
- interface IPool {
11
- struct PoolInfo {
12
- NftId nftId;
13
- bool isVerifying;
14
- UFixed collateralizationLevel;
15
- }
16
- }
17
-
18
- interface IPoolModule is IPool {
19
-
20
- function registerPool(
21
- NftId poolNftId,
22
- bool isVerifying,
23
- UFixed collateralizationLevel
24
- ) external;
25
-
26
- function addBundleToPool(
27
- NftId bundleNftId,
28
- NftId poolNftId,
29
- uint256 amount
30
- ) external;
31
-
32
- function getPoolInfo(
33
- NftId nftId
34
- ) external view returns (PoolInfo memory info);
35
-
36
- function getBundleCount(NftId poolNftId) external view returns (uint256 bundleCount);
37
- function getBundleNftId(NftId poolNftId, uint256 index) external view returns (NftId bundleNftId);
38
-
39
- // repeat service linked signatures to avoid linearization issues
40
- function getPoolService() external returns(IPoolService);
41
- }
@@ -1,87 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRegistry} from "../../../registry/IRegistry.sol";
5
- import {IProductService} from "../../service/IProductService.sol";
6
- import {IPoolService} from "../../service/IPoolService.sol";
7
- import {IPolicy, IPolicyModule} from "../../module/policy/IPolicy.sol";
8
- import {ITreasuryModule} from "../../module/treasury/ITreasury.sol";
9
-
10
- import {NftId} from "../../../types/NftId.sol";
11
- import {LibNftIdSet} from "../../../types/NftIdSet.sol";
12
- import {StateId, APPLIED} from "../../../types/StateId.sol";
13
- import {UFixed} from "../../../types/UFixed.sol";
14
-
15
- import {IPoolModule} from "./IPoolModule.sol";
16
-
17
- abstract contract PoolModule is
18
- IPoolModule
19
- {
20
- using LibNftIdSet for LibNftIdSet.Set;
21
-
22
- mapping(NftId poolNftId => PoolInfo info) private _poolInfo;
23
- mapping(NftId poolNftId => LibNftIdSet.Set bundles) private _bundlesForPool;
24
-
25
- modifier poolServiceCallingPool() {
26
- require(
27
- msg.sender == address(this.getPoolService()),
28
- "ERROR:PL-001:NOT_POOL_SERVICE"
29
- );
30
- _;
31
- }
32
-
33
- function registerPool(
34
- NftId nftId,
35
- bool isVerifying,
36
- UFixed collateralizationRate
37
- )
38
- public
39
- override
40
- {
41
- require(
42
- _poolInfo[nftId].nftId.eqz(),
43
- "ERROR:PL-010:ALREADY_CREATED");
44
-
45
- _poolInfo[nftId] = PoolInfo(
46
- nftId,
47
- isVerifying,
48
- collateralizationRate
49
- );
50
-
51
- // TODO add logging
52
- }
53
-
54
- function addBundleToPool(
55
- NftId bundleNftId,
56
- NftId poolNftId,
57
- uint256 // amount
58
- )
59
- external
60
- override
61
- {
62
- LibNftIdSet.Set storage bundleSet = _bundlesForPool[poolNftId];
63
- require(
64
- !bundleSet.contains(bundleNftId),
65
- "ERROR:PL-020:BUNDLE_ALREADY_ADDED");
66
-
67
- bundleSet.add(bundleNftId);
68
- }
69
-
70
-
71
- function getPoolInfo(
72
- NftId nftId
73
- ) external view override returns (PoolInfo memory info) {
74
- info = _poolInfo[nftId];
75
- }
76
-
77
-
78
- function getBundleCount(NftId poolNftId) external view override returns (uint256 bundleCount) {
79
- return _bundlesForPool[poolNftId].getLength();
80
- }
81
-
82
-
83
- function getBundleNftId(NftId poolNftId, uint256 index) external view override returns (NftId bundleNftId) {
84
- return _bundlesForPool[poolNftId].getElementAt(index);
85
- }
86
-
87
- }
@@ -1,10 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface IRisk {
5
-
6
- }
7
-
8
- interface IRiskModule is IRisk {
9
-
10
- }
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IRiskModule} from "./IRisk.sol";
5
-
6
- contract RiskModule is IRiskModule {
7
-
8
- }
@@ -1,103 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {NftId} from "../../../types/NftId.sol";
7
- import {UFixed} from "../../../types/UFixed.sol";
8
- import {Fee} from "../../../types/Fee.sol";
9
-
10
- import {TokenHandler} from "./TokenHandler.sol";
11
-
12
- interface ITreasury {
13
- // TODO add events
14
- // TODO add errors
15
-
16
- struct ProductSetup {
17
- NftId productNftId;
18
- NftId distributorNftId;
19
- NftId poolNftId;
20
- IERC20Metadata token;
21
- address wallet;
22
- Fee policyFee;
23
- Fee processingFee;
24
- }
25
-
26
- struct DistributorSetup {
27
- NftId distributorNftId;
28
- address wallet;
29
- Fee commissionFee;
30
- }
31
-
32
- struct PoolSetup {
33
- NftId poolNftId;
34
- address wallet;
35
- Fee stakingFee;
36
- Fee performanceFee;
37
- }
38
- }
39
-
40
- interface ITreasuryModule is ITreasury {
41
-
42
- function registerProduct(
43
- NftId productNftId,
44
- NftId distributorNftId,
45
- NftId poolNftId,
46
- IERC20Metadata token,
47
- address wallet,
48
- Fee memory policyFee,
49
- Fee memory processingFee
50
- ) external;
51
-
52
- function setProductFees(
53
- NftId productNftId,
54
- Fee memory policyFee,
55
- Fee memory processingFee
56
- ) external;
57
-
58
- function registerPool(
59
- NftId poolNftId,
60
- address wallet,
61
- Fee memory stakingFee,
62
- Fee memory performanceFee
63
- ) external;
64
-
65
- function setPoolFees(
66
- NftId poolNftId,
67
- Fee memory stakingFee,
68
- Fee memory performanceFee
69
- ) external;
70
-
71
- function getTokenHandler(
72
- NftId componentNftId
73
- ) external view returns (TokenHandler tokenHandler);
74
-
75
- function getProductSetup(
76
- NftId productNftId
77
- ) external view returns (ProductSetup memory setup);
78
-
79
- function getPoolSetup(
80
- NftId poolNftId
81
- ) external view returns (PoolSetup memory setup);
82
-
83
- function calculateFeeAmount(
84
- uint256 amount,
85
- Fee memory fee
86
- ) external pure returns (uint256 feeAmount, uint256 netAmount);
87
-
88
- function getFee(
89
- UFixed fractionalFee,
90
- uint256 fixedFee
91
- ) external pure returns (Fee memory fee);
92
-
93
- function getZeroFee() external pure returns (Fee memory fee);
94
-
95
- function getUFixed(
96
- uint256 a
97
- ) external pure returns (UFixed);
98
-
99
- function getUFixed(
100
- uint256 a,
101
- int8 exp
102
- ) external pure returns (UFixed);
103
- }
@@ -1,48 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {NftId} from "../../../types/NftId.sol";
7
-
8
- contract TokenHandler {
9
- NftId private _productNftId;
10
- IERC20Metadata private _token;
11
-
12
- constructor(
13
- NftId productNftId,
14
- address token
15
- )
16
- {
17
- _productNftId = productNftId;
18
- _token = IERC20Metadata(token);
19
- }
20
-
21
- // TODO add logging
22
- function transfer(
23
- address from,
24
- address to,
25
- uint256 amount
26
- )
27
- external // TODO add authz (only treasury/instance/product/pool/ service)
28
- {
29
- // TODO switch to oz safeTransferFrom
30
- _token.transferFrom(from, to, amount);
31
- }
32
-
33
- function getProductNftId()
34
- external
35
- view
36
- returns(NftId)
37
- {
38
- return _productNftId;
39
- }
40
-
41
- function getToken()
42
- external
43
- view
44
- returns(IERC20Metadata)
45
- {
46
- return _token;
47
- }
48
- }
@@ -1,152 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
5
-
6
- import {NftId} from "../../../types/NftId.sol";
7
- import {Fee, FeeLib} from "../../../types/Fee.sol";
8
- import {UFixed, UFixedMathLib} from "../../../types/UFixed.sol";
9
- import {TokenHandler} from "./TokenHandler.sol";
10
- import {ITreasuryModule} from "./ITreasury.sol";
11
-
12
- abstract contract TreasuryModule is ITreasuryModule {
13
- mapping(NftId productNftId => ProductSetup setup) private _productSetup;
14
- mapping(NftId distributorNftId => DistributorSetup setup)
15
- private _distributorSetup;
16
- mapping(NftId poolNftId => PoolSetup setup) private _poolSetup;
17
- mapping(NftId componentNftId => TokenHandler tokenHanlder) _tokenHandler;
18
-
19
- function registerProduct(
20
- NftId productNftId,
21
- NftId distributorNftId,
22
- NftId poolNftId,
23
- IERC20Metadata token,
24
- address wallet,
25
- Fee memory policyFee,
26
- Fee memory processingFee
27
- ) external override // TODO add authz (only component module)
28
- {
29
- require(address(_tokenHandler[productNftId]) == address(0), "ERROR:TRS-010:TOKEN_HANDLER_ALREADY_REGISTERED");
30
- require(address(_tokenHandler[poolNftId]) == address(0), "ERROR:TRS-011:TOKEN_HANDLER_ALREADY_REGISTERED");
31
- require(address(_tokenHandler[distributorNftId]) == address(0), "ERROR:TRS-012:TOKEN_HANDLER_ALREADY_REGISTERED");
32
- // TODO add additional validations
33
-
34
- // deploy product specific handler contract
35
- TokenHandler tokenHandler = new TokenHandler(productNftId, address(token));
36
- _tokenHandler[productNftId] = tokenHandler;
37
- _tokenHandler[poolNftId] = tokenHandler;
38
- _tokenHandler[distributorNftId] = tokenHandler;
39
-
40
- // create product setup
41
- _productSetup[productNftId] = ProductSetup(
42
- productNftId,
43
- distributorNftId,
44
- poolNftId,
45
- token,
46
- wallet,
47
- policyFee,
48
- processingFee
49
- );
50
-
51
- // TODO add logging
52
- }
53
-
54
- function setProductFees(
55
- NftId productNftId,
56
- Fee memory policyFee,
57
- Fee memory processingFee
58
- ) external override // TODO add authz (only component owner service)
59
- {
60
- // TODO add validation
61
-
62
- ProductSetup storage setup = _productSetup[productNftId];
63
- setup.policyFee = policyFee;
64
- setup.processingFee = processingFee;
65
-
66
- // TODO add logging
67
- }
68
-
69
- function registerPool(
70
- NftId poolNftId,
71
- address wallet,
72
- Fee memory stakingFee,
73
- Fee memory performanceFee
74
- ) external override // TODO add authz (only component module)
75
- {
76
- // TODO add validation
77
-
78
- _poolSetup[poolNftId] = PoolSetup(
79
- poolNftId,
80
- wallet,
81
- stakingFee,
82
- performanceFee
83
- );
84
-
85
- // TODO add logging
86
- }
87
-
88
- function setPoolFees(
89
- NftId poolNftId,
90
- Fee memory stakingFee,
91
- Fee memory performanceFee
92
- ) external override // TODO add authz (only component owner service)
93
- {
94
- // TODO add validation
95
-
96
- PoolSetup storage setup = _poolSetup[poolNftId];
97
- setup.stakingFee = stakingFee;
98
- setup.performanceFee = performanceFee;
99
-
100
- // TODO add logging
101
- }
102
-
103
- function getTokenHandler(
104
- NftId componentNftId
105
- ) external view override returns (TokenHandler tokenHandler) {
106
- return _tokenHandler[componentNftId];
107
- }
108
-
109
- function getProductSetup(
110
- NftId productNftId
111
- ) external view override returns (ProductSetup memory setup) {
112
- return _productSetup[productNftId];
113
- }
114
-
115
- function getPoolSetup(
116
- NftId poolNftId
117
- ) external view override returns (PoolSetup memory setup) {
118
- return _poolSetup[poolNftId];
119
- }
120
-
121
- function calculateFeeAmount(
122
- uint256 amount,
123
- Fee memory fee
124
- ) public pure override returns (uint256 feeAmount, uint256 netAmount) {
125
- return FeeLib.calculateFee(amount, fee);
126
- }
127
-
128
- function getFee(
129
- UFixed fractionalFee,
130
- uint256 fixedFee
131
- ) external pure override returns (Fee memory fee) {
132
- return FeeLib.toFee(fractionalFee, fixedFee);
133
- }
134
-
135
- function getZeroFee() external pure override returns (Fee memory fee) {
136
- return FeeLib.zeroFee();
137
- }
138
-
139
- function getUFixed(
140
- uint256 a
141
- ) external pure override returns (UFixed) {
142
- return UFixedMathLib.toUFixed(a);
143
- }
144
-
145
- function getUFixed(
146
- uint256 a,
147
- int8 exp
148
- ) external pure returns (UFixed)
149
- {
150
- return UFixedMathLib.toUFixed(a, exp);
151
- }
152
- }