@etherisc/gif-next 0.0.2-a196164-289 → 0.0.2-a38075a-779

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 (405) hide show
  1. package/README.md +211 -27
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +176 -23
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +267 -54
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +129 -23
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -188
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +15 -227
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -213
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +334 -99
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +365 -80
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  36. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  42. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  44. package/artifacts/contracts/instance/AccessManagedUpgradeableInitializeable.sol/AccessManagedUpgradeableInitializeable.dbg.json +4 -0
  45. package/artifacts/contracts/instance/AccessManagedUpgradeableInitializeable.sol/AccessManagedUpgradeableInitializeable.json +137 -0
  46. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  47. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  48. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  49. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +775 -0
  50. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  51. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  52. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  53. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +789 -1139
  56. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  57. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  58. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  59. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +485 -0
  60. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  61. package/artifacts/contracts/instance/Instance.sol/Instance.json +2350 -1201
  62. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +940 -0
  64. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  66. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  68. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +970 -0
  70. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +512 -0
  72. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +272 -0
  74. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +194 -41
  76. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +1 -1
  78. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
  80. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  81. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +37 -245
  83. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  84. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  85. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  86. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  87. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  89. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  90. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  91. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  92. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  93. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  94. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  95. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  96. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  97. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  98. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  99. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +293 -84
  101. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +267 -58
  103. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  104. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +444 -0
  105. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +121 -60
  107. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +118 -38
  109. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  110. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +280 -33
  111. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  112. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +158 -69
  113. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  114. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +477 -58
  115. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  116. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +464 -0
  117. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  118. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +327 -125
  119. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +488 -0
  121. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  122. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  123. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  124. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +377 -37
  125. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  126. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +947 -0
  127. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  128. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  129. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  130. package/artifacts/contracts/registry/Registry.sol/Registry.json +487 -123
  131. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  132. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1293 -0
  133. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  134. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +517 -0
  135. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  136. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
  137. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  138. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  139. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  140. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  141. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +67 -57
  143. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  144. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  145. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  146. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/IService.sol/IService.json} +114 -80
  147. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  148. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  149. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  150. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  151. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  152. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  154. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/base/IService.sol/IService.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +172 -71
  156. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  157. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +149 -144
  158. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  159. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  160. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  161. package/artifacts/contracts/shared/{Proxy.sol/ProxyWithProxyAdminGetter.json → UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json} +4 -4
  162. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -25
  164. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
  166. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  167. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  168. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  169. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  170. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  171. package/artifacts/contracts/test/TestService.sol/TestService.json +201 -67
  172. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  173. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  174. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  175. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  176. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  177. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +27 -34
  178. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  179. package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
  180. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  181. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  183. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  184. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  185. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/Fee.sol/FeeLib.json +4 -4
  187. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  188. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  189. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  191. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  192. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  193. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  194. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  195. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  196. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  197. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  198. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  199. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  200. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  201. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  202. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  203. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  204. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  205. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  206. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  207. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  208. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  209. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  210. package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
  211. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  212. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  213. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  214. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  215. package/contracts/components/BaseComponent.sol +26 -29
  216. package/contracts/components/Distribution.sol +49 -18
  217. package/contracts/components/IBaseComponent.sol +9 -3
  218. package/contracts/components/IDistributionComponent.sol +3 -6
  219. package/contracts/components/IPoolComponent.sol +7 -12
  220. package/contracts/components/IProductComponent.sol +4 -7
  221. package/contracts/components/Pool.sol +111 -79
  222. package/contracts/components/Product.sol +109 -47
  223. package/contracts/experiment/cloning/Cloner.sol +47 -0
  224. package/contracts/instance/AccessManagedUpgradeableInitializeable.sol +17 -0
  225. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  226. package/contracts/instance/BundleManager.sol +129 -0
  227. package/contracts/instance/Cloneable.sol +46 -0
  228. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  229. package/contracts/instance/IInstance.sol +48 -45
  230. package/contracts/instance/IInstanceBase.sol +26 -0
  231. package/contracts/instance/IInstanceService.sol +32 -0
  232. package/contracts/instance/Instance.sol +437 -57
  233. package/contracts/instance/InstanceAccessManager.sol +288 -0
  234. package/contracts/instance/InstanceBase.sol +41 -0
  235. package/contracts/instance/InstanceReader.sol +315 -0
  236. package/contracts/instance/InstanceService.sol +233 -0
  237. package/contracts/instance/InstanceServiceManager.sol +57 -0
  238. package/contracts/instance/ObjectManager.sol +95 -0
  239. package/contracts/instance/base/ComponentServiceBase.sol +102 -10
  240. package/contracts/instance/base/IInstanceBase.sol +3 -2
  241. package/contracts/instance/base/IKeyValueStore.sol +13 -14
  242. package/contracts/instance/base/ILifecycle.sol +3 -3
  243. package/contracts/instance/base/KeyValueStore.sol +49 -38
  244. package/contracts/instance/base/Lifecycle.sol +1 -1
  245. package/contracts/instance/module/IAccess.sol +38 -0
  246. package/contracts/instance/module/IBundle.sol +20 -0
  247. package/contracts/instance/module/IDistribution.sol +39 -0
  248. package/contracts/instance/module/IPolicy.sol +45 -0
  249. package/contracts/instance/module/IRisk.sol +11 -0
  250. package/contracts/instance/module/ISetup.sol +46 -0
  251. package/contracts/instance/module/ITreasury.sol +23 -0
  252. package/contracts/instance/service/ComponentOwnerService.sol +232 -72
  253. package/contracts/instance/service/DistributionService.sol +49 -20
  254. package/contracts/instance/service/DistributionServiceManager.sol +54 -0
  255. package/contracts/instance/service/IComponentOwnerService.sol +1 -3
  256. package/contracts/instance/service/IDistributionService.sol +1 -1
  257. package/contracts/instance/service/IPoolService.sol +17 -3
  258. package/contracts/instance/service/IProductService.sol +9 -6
  259. package/contracts/instance/service/PoolService.sol +190 -52
  260. package/contracts/instance/service/PoolServiceManager.sol +54 -0
  261. package/contracts/instance/service/ProductService.sol +195 -134
  262. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  263. package/contracts/registry/ChainNft.sol +80 -37
  264. package/contracts/registry/IRegistry.sol +49 -25
  265. package/contracts/registry/IRegistryService.sol +50 -0
  266. package/contracts/registry/ITransferInterceptor.sol +6 -0
  267. package/contracts/registry/Registry.sol +336 -269
  268. package/contracts/registry/RegistryService.sol +358 -0
  269. package/contracts/registry/RegistryServiceManager.sol +80 -0
  270. package/contracts/registry/TokenRegistry.sol +111 -0
  271. package/contracts/shared/ContractDeployerLib.sol +72 -0
  272. package/contracts/shared/ERC165.sol +6 -2
  273. package/contracts/shared/INftOwnable.sol +22 -0
  274. package/contracts/shared/IRegisterable.sol +8 -15
  275. package/contracts/{instance/base → shared}/IService.sol +3 -3
  276. package/contracts/shared/IVersionable.sol +44 -13
  277. package/contracts/shared/NftOwnable.sol +134 -0
  278. package/contracts/shared/ProxyManager.sol +94 -0
  279. package/contracts/shared/Registerable.sol +63 -59
  280. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  281. package/contracts/shared/Service.sol +55 -0
  282. package/contracts/shared/TokenHandler.sol +27 -0
  283. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  284. package/contracts/shared/Versionable.sol +110 -62
  285. package/contracts/test/TestFee.sol +2 -2
  286. package/contracts/test/TestRegisterable.sol +5 -6
  287. package/contracts/test/TestRoleId.sol +1 -1
  288. package/contracts/test/TestService.sol +5 -13
  289. package/contracts/types/DistributorType.sol +55 -0
  290. package/contracts/types/Fee.sol +3 -3
  291. package/contracts/types/Key32.sol +8 -3
  292. package/contracts/types/NftIdSet.sol +26 -24
  293. package/contracts/types/NumberId.sol +52 -0
  294. package/contracts/types/ObjectType.sol +35 -14
  295. package/contracts/types/Referral.sol +85 -0
  296. package/contracts/types/RoleId.sol +61 -9
  297. package/contracts/types/StateId.sol +5 -1
  298. package/contracts/types/Timestamp.sol +7 -3
  299. package/contracts/types/UFixed.sol +128 -12
  300. package/contracts/types/Version.sol +5 -1
  301. package/package.json +4 -3
  302. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  303. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  304. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  305. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  306. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  307. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  308. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  309. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  310. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  311. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
  312. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  313. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  314. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  315. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  316. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  317. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  318. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  319. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  320. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  321. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  322. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  323. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  324. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  325. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  326. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  327. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  328. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  329. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  330. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  331. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  332. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  333. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  334. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  335. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  336. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  337. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  338. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  339. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  340. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  341. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  342. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  343. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  344. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  345. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  346. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  347. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  348. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  349. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  350. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  351. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  352. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  353. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  354. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  355. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  356. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +0 -4
  357. package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +0 -711
  358. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  359. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  360. package/artifacts/contracts/shared/Proxy.sol/Proxy.dbg.json +0 -4
  361. package/artifacts/contracts/shared/Proxy.sol/Proxy.json +0 -235
  362. package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +0 -4
  363. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +0 -4
  364. package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +0 -228
  365. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  366. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  367. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  368. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  369. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  370. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  371. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  372. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  373. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  374. package/contracts/experiment/statemachine/README.md +0 -112
  375. package/contracts/instance/IInstanceLinked.sol +0 -8
  376. package/contracts/instance/base/InstanceBase.sol +0 -91
  377. package/contracts/instance/base/ModuleBase.sol +0 -57
  378. package/contracts/instance/base/ServiceBase.sol +0 -37
  379. package/contracts/instance/module/access/Access.sol +0 -149
  380. package/contracts/instance/module/access/IAccess.sol +0 -53
  381. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  382. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  383. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  384. package/contracts/instance/module/component/IComponent.sol +0 -28
  385. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  386. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  387. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  388. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  389. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  390. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  391. package/contracts/instance/module/risk/IRisk.sol +0 -26
  392. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  393. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  394. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  395. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  396. package/contracts/registry/IChainNft.sol +0 -21
  397. package/contracts/registry/IRegistryLinked.sol +0 -8
  398. package/contracts/registry/RegistryUpgradeable.sol +0 -548
  399. package/contracts/shared/IOwnable.sol +0 -6
  400. package/contracts/shared/Proxy.sol +0 -89
  401. package/contracts/shared/VersionableUpgradeable.sol +0 -120
  402. package/contracts/test/TestDistribution.sol +0 -21
  403. package/contracts/test/TestPool.sol +0 -25
  404. package/contracts/test/TestProduct.sol +0 -72
  405. package/contracts/types/ReferralId.sol +0 -48
@@ -1,120 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Initializable} from "@openzeppelin5/contracts/proxy/utils/Initializable.sol";
5
-
6
- import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
7
- import {Timestamp, blockTimestamp} from "../types/Timestamp.sol";
8
- import {Version, VersionPart, VersionLib} from "../types/Version.sol";
9
-
10
- import {IVersionable} from "./IVersionable.sol";
11
-
12
- abstract contract VersionableUpgradeable is
13
- Initializable,
14
- IVersionable
15
- {
16
- /// @custom:storage-location erc7201:etherisc.storage.Versionable
17
- struct VersionableStorage {
18
- mapping(Version version => VersionInfo info) _versionHistory;
19
- Version [] _versions;
20
- Version _v1;
21
- }
22
-
23
- // keccak256(abi.encode(uint256(keccak256("etherisc.storage.Versionable")) - 1)) & ~bytes32(uint256(0xff))
24
- bytes32 private constant VersionableStorageLocation = 0x4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900;
25
-
26
- function _getVersionableStorage() private pure returns (VersionableStorage storage $) {
27
- assembly {
28
- $.slot := VersionableStorageLocation
29
- }
30
- }
31
-
32
- constructor() {
33
- _disableInitializers();
34
- }
35
-
36
- // IMPORTANT this function needs to be implemented by each new version
37
- // and needs to call internal function _updateVersionHistory()
38
- // INITIALIZER FUNCTION
39
- function initialize(
40
- address implementation,
41
- address activatedBy,
42
- bytes memory activationData
43
- )
44
- public
45
- virtual
46
- initializer
47
- {
48
- _updateVersionHistory(implementation, activatedBy);
49
- }
50
-
51
- // can only be called once per contract
52
- // needs to be called inside the proxy upgrade tx
53
- // TODO run reinitializer(version().toUint64()) modifier after "version()" is checked,
54
- function _updateVersionHistory(
55
- address implementation,
56
- address activatedBy
57
- )
58
- internal
59
- onlyInitializing
60
- {
61
- VersionableStorage storage $ = _getVersionableStorage();
62
-
63
- uint64 version = _getInitializedVersion();
64
-
65
- Version thisVersion = getVersion();
66
-
67
- if(version == 1) {
68
- // thisVersion is alias to version "1"
69
- $._v1 = thisVersion;
70
- }
71
- else {
72
- Version initializedVersion = VersionLib.toVersion(version);
73
- //require(initializedVersion == thisVersion, "");
74
- require(thisVersion > $._v1, "");
75
- }
76
-
77
- // update version history
78
- $._versions.push(thisVersion);
79
- $._versionHistory[thisVersion] = VersionInfo(
80
- thisVersion,
81
- implementation,
82
- activatedBy,
83
- blockTimestamp(),
84
- blockNumber()
85
- );
86
-
87
- emit LogVersionableInitialized(thisVersion, implementation, activatedBy);
88
- }
89
-
90
- // TODO previous version(s) can not be activated -> check that _version is the current one
91
- function isInitialized(Version _version) public override view returns(bool) {
92
- return _getVersionableStorage()._versionHistory[_version].activatedIn.toInt() > 0;
93
- }
94
-
95
-
96
- function getVersion() public pure virtual returns(Version);
97
-
98
-
99
- function getVersionCount() external view override returns(uint256) {
100
- return _getVersionableStorage()._versions.length;
101
- }
102
-
103
- function getVersion(uint256 idx) external view override returns(Version) {
104
- return _getVersionableStorage()._versions[idx];
105
- }
106
-
107
-
108
- function getVersionInfo(Version _version) external override view returns(VersionInfo memory) {
109
- return _getVersionableStorage()._versionHistory[_version];
110
- }
111
-
112
- /*function getInitializedVersion() external view returns(Version)
113
- {
114
- return VersionLib.toVersion(_getInitializedVersion());
115
- }*/
116
- function getInitializedVersion() external view returns(uint64)
117
- {
118
- return _getInitializedVersion();
119
- }
120
- }
@@ -1,21 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Fee} from "../../contracts/types/Fee.sol";
5
- import {NftId} from "../../contracts/types/NftId.sol";
6
- import {Distribution} from "../../contracts/components/Distribution.sol";
7
-
8
-
9
- contract TestDistribution is Distribution {
10
-
11
- constructor(
12
- address registry,
13
- NftId instanceNftid,
14
- address token,
15
- bool isVerifying,
16
- Fee memory distributionFee
17
- )
18
- Distribution(registry, instanceNftid, token, isVerifying, distributionFee)
19
- // solhint-disable-next-line no-empty-blocks
20
- {}
21
- }
@@ -1,25 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../contracts/types/NftId.sol";
5
- import {UFixed} from "../../contracts/types/UFixed.sol";
6
- import {Fee} from "../../contracts/types/Fee.sol";
7
- import {Pool} from "../../contracts/components/Pool.sol";
8
-
9
-
10
- contract TestPool is Pool {
11
-
12
- constructor(
13
- address registry,
14
- NftId instanceNftid,
15
- address token,
16
- bool isVerifying,
17
- UFixed collateralizationLevel,
18
- Fee memory poolFee,
19
- Fee memory stakingFee,
20
- Fee memory performanceFee
21
- )
22
- Pool(registry, instanceNftid, token, isVerifying, collateralizationLevel, poolFee, stakingFee, performanceFee)
23
- // solhint-disable-next-line no-empty-blocks
24
- {}
25
- }
@@ -1,72 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Product} from "../../contracts/components/Product.sol";
5
- import {NftId, toNftId} from "../../contracts/types/NftId.sol";
6
- import {ReferralId} from "../types/ReferralId.sol";
7
- import {RiskId} from "../../contracts/types/RiskId.sol";
8
- import {Timestamp, blockTimestamp} from "../../contracts/types/Timestamp.sol";
9
- import {Fee} from "../../contracts/types/Fee.sol";
10
-
11
- contract TestProduct is Product {
12
-
13
- event LogTestProductSender(address sender);
14
-
15
- string public constant DEFAULT_RISK_NAME = "DEFAULT_RISK";
16
- bool private defaultRiskCreated;
17
-
18
- constructor(
19
- address registry,
20
- NftId instanceNftid,
21
- address token,
22
- address pool,
23
- address distribution,
24
- Fee memory productFee,
25
- Fee memory processingFee
26
- )
27
- Product(registry, instanceNftid, token, pool, distribution, productFee, processingFee)
28
- // solhint-disable-next-line no-empty-blocks
29
- {
30
- }
31
-
32
- function getDefaultRiskId() public pure returns (RiskId) {
33
- return _toRiskId(DEFAULT_RISK_NAME);
34
- }
35
-
36
- function applyForPolicy(
37
- uint256 sumInsuredAmount,
38
- uint256 lifetime,
39
- NftId bundleNftId,
40
- ReferralId referralId
41
- )
42
- external
43
- returns(NftId nftId)
44
- {
45
- RiskId riskId = getDefaultRiskId();
46
- bytes memory applicationData = "";
47
-
48
- if (!defaultRiskCreated) {
49
- _createRisk(riskId, "");
50
- defaultRiskCreated = true;
51
- }
52
-
53
- nftId = _createApplication(
54
- msg.sender, // policy holder
55
- riskId,
56
- sumInsuredAmount,
57
- lifetime,
58
- applicationData,
59
- bundleNftId,
60
- referralId
61
- );
62
- }
63
-
64
- function underwrite(NftId nftId, bool requirePremiumPayment, Timestamp activateAt) external {
65
- emit LogTestProductSender(msg.sender);
66
- _underwrite(nftId, requirePremiumPayment, activateAt);
67
- }
68
-
69
- function collectPremium(NftId nftId, Timestamp activateAt) external {
70
- _collectPremium(nftId, activateAt);
71
- }
72
- }
@@ -1,48 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {Key32, KeyId, Key32Lib} from "./Key32.sol";
5
- import {REFERRAL} from "./ObjectType.sol";
6
-
7
- type ReferralId is bytes8;
8
-
9
- // type bindings
10
- using {
11
- eqReferralId as ==,
12
- neReferralId as !=,
13
- ReferralIdLib.toKey32
14
- } for ReferralId global;
15
-
16
- // general pure free functions
17
-
18
- // @dev Returns true iff risk ids a and b are identical
19
- function eqReferralId(ReferralId a, ReferralId b) pure returns (bool isSame) {
20
- return ReferralId.unwrap(a) == ReferralId.unwrap(b);
21
- }
22
-
23
- // @dev Returns true iff risk ids a and b are different
24
- function neReferralId(ReferralId a, ReferralId b) pure returns (bool isDifferent) {
25
- return ReferralId.unwrap(a) != ReferralId.unwrap(b);
26
- }
27
-
28
- library ReferralIdLib {
29
-
30
- function zeroReferralId() public pure returns (ReferralId) {
31
- return ReferralId.wrap(bytes8(0));
32
- }
33
-
34
- // @dev Converts a role string into a role id.
35
- function toReferralId(string memory referral) public pure returns (ReferralId) {
36
- return ReferralId.wrap(bytes8(keccak256(abi.encode(referral))));
37
- }
38
-
39
- /// @dev Returns the key32 value for the specified id
40
- function toKey32(ReferralId id) public pure returns (Key32 key) {
41
- return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
42
- }
43
-
44
- /// @dev Returns the key id value for the specified id
45
- function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
46
- return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
47
- }
48
- }