@etherisc/gif-next 0.0.2-e37834a-021 → 0.0.2-e3f4f82-063

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 (366) hide show
  1. package/README.md +108 -1
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +116 -2
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +204 -31
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +106 -3
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -25
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +2 -61
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -50
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +253 -68
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +272 -45
  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/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +4 -0
  45. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +101 -0
  46. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +4 -0
  47. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +1132 -0
  48. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  49. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  50. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +732 -1219
  52. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  53. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +480 -0
  54. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/Instance.sol/Instance.json +2327 -1324
  56. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  57. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +917 -0
  58. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  59. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  60. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +931 -0
  62. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +508 -0
  64. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +149 -2
  66. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  67. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  68. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
  69. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  70. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +37 -245
  72. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  76. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  78. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  81. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  82. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  83. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  84. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  85. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  86. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  87. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  88. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +178 -41
  90. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +212 -22
  92. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  93. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +444 -0
  94. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +81 -4
  96. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +80 -3
  98. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +188 -3
  100. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  101. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +120 -34
  102. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +346 -24
  104. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +460 -0
  106. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  107. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +269 -86
  108. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  109. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +488 -0
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  111. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +47 -2
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  113. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +199 -112
  114. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +297 -18
  116. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  118. package/artifacts/contracts/registry/Registry.sol/Registry.json +167 -166
  119. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  120. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +447 -39
  121. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -48
  123. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  124. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
  125. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  126. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  127. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  128. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  129. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +67 -57
  130. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +80 -3
  132. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  133. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/IService.sol/IService.json} +76 -35
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +32 -6
  137. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  138. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +21 -16
  139. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +120 -6
  141. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  142. package/artifacts/contracts/{instance/base/IService.sol/IService.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +137 -39
  143. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  144. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +106 -94
  145. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  146. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  147. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  148. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  149. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  150. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
  152. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  153. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +120 -6
  154. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  156. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestService.sol/TestService.json +142 -14
  158. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  159. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  160. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  161. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  162. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +18 -2
  164. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  165. package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
  166. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  167. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  169. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  170. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  171. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/Fee.sol/FeeLib.json +4 -4
  173. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  174. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  175. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  177. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  178. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  179. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  180. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  181. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  183. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  184. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  185. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  187. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  188. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  189. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  191. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  193. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  194. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  195. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  196. package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
  197. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  199. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  200. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  201. package/contracts/components/BaseComponent.sol +16 -4
  202. package/contracts/components/Distribution.sol +23 -15
  203. package/contracts/components/IBaseComponent.sol +9 -3
  204. package/contracts/components/IDistributionComponent.sol +2 -4
  205. package/contracts/components/IPoolComponent.sol +1 -3
  206. package/contracts/components/IProductComponent.sol +2 -4
  207. package/contracts/components/Pool.sol +33 -32
  208. package/contracts/components/Product.sol +52 -62
  209. package/contracts/experiment/cloning/Cloner.sol +47 -0
  210. package/contracts/instance/AccessManagedSimple.sol +115 -0
  211. package/contracts/instance/AccessManagerSimple.sol +692 -0
  212. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  213. package/contracts/instance/IInstance.sol +47 -47
  214. package/contracts/instance/IInstanceService.sol +30 -0
  215. package/contracts/instance/Instance.sol +423 -65
  216. package/contracts/instance/InstanceAccessManager.sol +288 -0
  217. package/contracts/instance/InstanceReader.sol +315 -0
  218. package/contracts/instance/InstanceService.sol +198 -0
  219. package/contracts/instance/InstanceServiceManager.sol +57 -0
  220. package/contracts/instance/base/ComponentServiceBase.sol +93 -8
  221. package/contracts/instance/base/IKeyValueStore.sol +13 -14
  222. package/contracts/instance/base/ILifecycle.sol +3 -3
  223. package/contracts/instance/base/KeyValueStore.sol +49 -38
  224. package/contracts/instance/base/Lifecycle.sol +1 -1
  225. package/contracts/instance/module/IAccess.sol +38 -0
  226. package/contracts/instance/module/IBundle.sol +20 -0
  227. package/contracts/instance/module/IDistribution.sol +39 -0
  228. package/contracts/instance/module/IPolicy.sol +45 -0
  229. package/contracts/instance/module/IRisk.sol +11 -0
  230. package/contracts/instance/module/ISetup.sol +47 -0
  231. package/contracts/instance/module/ITreasury.sol +23 -0
  232. package/contracts/instance/service/ComponentOwnerService.sol +145 -100
  233. package/contracts/instance/service/DistributionService.sol +49 -15
  234. package/contracts/instance/service/DistributionServiceManager.sol +54 -0
  235. package/contracts/instance/service/IComponentOwnerService.sol +1 -1
  236. package/contracts/instance/service/IDistributionService.sol +1 -1
  237. package/contracts/instance/service/IPoolService.sol +7 -1
  238. package/contracts/instance/service/IProductService.sol +9 -6
  239. package/contracts/instance/service/PoolService.sol +101 -46
  240. package/contracts/instance/service/PoolServiceManager.sol +54 -0
  241. package/contracts/instance/service/ProductService.sol +170 -118
  242. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  243. package/contracts/registry/ChainNft.sol +40 -25
  244. package/contracts/registry/IRegistry.sol +35 -27
  245. package/contracts/registry/IRegistryService.sol +36 -15
  246. package/contracts/registry/Registry.sol +137 -179
  247. package/contracts/registry/RegistryService.sol +149 -166
  248. package/contracts/registry/RegistryServiceManager.sol +38 -10
  249. package/contracts/registry/TokenRegistry.sol +111 -0
  250. package/contracts/shared/ERC165.sol +7 -3
  251. package/contracts/shared/INftOwnable.sol +22 -0
  252. package/contracts/shared/IRegisterable.sol +3 -8
  253. package/contracts/{instance/base → shared}/IService.sol +3 -3
  254. package/contracts/shared/NftOwnable.sol +85 -38
  255. package/contracts/shared/ProxyManager.sol +3 -12
  256. package/contracts/shared/Registerable.sol +15 -42
  257. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  258. package/contracts/shared/Service.sol +55 -0
  259. package/contracts/shared/TokenHandler.sol +27 -0
  260. package/contracts/shared/UpgradableProxyWithAdmin.sol +2 -2
  261. package/contracts/shared/Versionable.sol +3 -3
  262. package/contracts/test/TestFee.sol +2 -2
  263. package/contracts/test/TestRoleId.sol +1 -1
  264. package/contracts/test/TestService.sol +3 -5
  265. package/contracts/types/DistributorType.sol +55 -0
  266. package/contracts/types/Fee.sol +3 -3
  267. package/contracts/types/Key32.sol +8 -3
  268. package/contracts/types/NumberId.sol +52 -0
  269. package/contracts/types/ObjectType.sol +35 -14
  270. package/contracts/types/Referral.sol +85 -0
  271. package/contracts/types/RoleId.sol +61 -9
  272. package/contracts/types/StateId.sol +5 -1
  273. package/contracts/types/Timestamp.sol +7 -3
  274. package/contracts/types/UFixed.sol +128 -12
  275. package/contracts/types/Version.sol +4 -1
  276. package/package.json +4 -3
  277. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  278. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  279. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  280. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  281. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  282. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  283. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  284. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  285. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  286. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
  287. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  288. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  289. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  290. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  291. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  292. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  293. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  294. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  295. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  296. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  297. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  298. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  299. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  300. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  301. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  302. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  303. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  304. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  305. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  306. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  307. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  308. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  309. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  310. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  311. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  312. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  313. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  314. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  315. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  316. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  317. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  318. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  319. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  320. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  321. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  322. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  323. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  324. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  325. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  326. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  327. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  328. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  329. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  330. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  331. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  332. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  333. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  334. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  335. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  336. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  337. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  338. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  339. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  340. package/contracts/instance/IInstanceLinked.sol +0 -8
  341. package/contracts/instance/base/InstanceBase.sol +0 -89
  342. package/contracts/instance/base/ModuleBase.sol +0 -57
  343. package/contracts/instance/base/ServiceBase.sol +0 -43
  344. package/contracts/instance/module/access/Access.sol +0 -149
  345. package/contracts/instance/module/access/IAccess.sol +0 -53
  346. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  347. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  348. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  349. package/contracts/instance/module/component/IComponent.sol +0 -28
  350. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  351. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  352. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  353. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  354. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  355. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  356. package/contracts/instance/module/risk/IRisk.sol +0 -26
  357. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  358. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  359. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  360. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  361. package/contracts/registry/IChainNft.sol +0 -22
  362. package/contracts/shared/IOwnable.sol +0 -6
  363. package/contracts/test/TestDistribution.sol +0 -22
  364. package/contracts/test/TestPool.sol +0 -27
  365. package/contracts/test/TestProduct.sol +0 -74
  366. package/contracts/types/ReferralId.sol +0 -48
@@ -1,19 +1,28 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ERC721, ERC721Enumerable} from "@openzeppelin5/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
5
- import {IERC721} from "@openzeppelin5/contracts/token/ERC721/IERC721.sol";
4
+ import {ERC721, ERC721Enumerable} from "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol";
5
+ import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
6
6
 
7
- import {IChainNft} from "./IChainNft.sol";
8
7
  import {ITransferInterceptor} from "./ITransferInterceptor.sol";
9
8
 
10
- contract ChainNft is ERC721Enumerable, IChainNft {
11
- string public constant NAME = "Dezentralized Insurance Protocol Registry";
12
- string public constant SYMBOL = "DIPR";
9
+ contract ChainNft is ERC721Enumerable {
10
+
11
+ // constants
12
+ string public constant NAME = "Dezentralized Insurance Protocol NFT";
13
+ string public constant SYMBOL = "DIPNFT";
13
14
 
14
15
  uint256 public constant PROTOCOL_NFT_ID = 1101;
15
16
  uint256 public constant GLOBAL_REGISTRY_ID = 2101;
16
17
 
18
+ // custom errors
19
+ error CallerNotRegistry(address caller);
20
+ error RegistryAddressZero();
21
+ error NftUriEmpty();
22
+ error NftUriAlreadySet();
23
+
24
+ // contract state
25
+
17
26
  // remember interceptors
18
27
  mapping(uint256 tokenId => address interceptor) private _interceptor;
19
28
 
@@ -31,17 +40,24 @@ contract ChainNft is ERC721Enumerable, IChainNft {
31
40
  uint256 internal _totalMinted;
32
41
 
33
42
  modifier onlyRegistry() {
34
- require(msg.sender == _registry, "ERROR:NFT-001:CALLER_NOT_REGISTRY");
43
+ if (msg.sender != _registry) { revert CallerNotRegistry(msg.sender); }
35
44
  _;
36
45
  }
37
46
 
38
47
  constructor(address registry) ERC721(NAME, SYMBOL) {
39
- require(registry != address(0), "ERROR:NFT-010:REGISTRY_ZERO");
48
+ if (registry == address(0)) { revert RegistryAddressZero(); }
40
49
 
41
50
  _registry = registry;
42
-
43
51
  _chainIdInt = block.chainid;
44
- _chainIdDigits = _countDigits(_chainIdInt);
52
+ _chainIdDigits = 0;
53
+
54
+ // count digis
55
+ uint256 num = _chainIdInt;
56
+ while (num != 0) {
57
+ _chainIdDigits++;
58
+ num /= 10;
59
+ }
60
+
45
61
  _chainIdMultiplier = 10 ** _chainIdDigits;
46
62
  _idNext = 4;
47
63
  }
@@ -77,8 +93,8 @@ contract ChainNft is ERC721Enumerable, IChainNft {
77
93
  _uri[tokenId] = uri;
78
94
  }
79
95
 
80
- _safeMint(to, tokenId);
81
96
  _totalMinted++;
97
+ _safeMint(to, tokenId);
82
98
  }
83
99
 
84
100
 
@@ -95,7 +111,7 @@ contract ChainNft is ERC721Enumerable, IChainNft {
95
111
  }
96
112
 
97
113
 
98
- function burn(uint256 tokenId) external override onlyRegistry {
114
+ function burn(uint256 tokenId) external onlyRegistry {
99
115
  _requireOwned(tokenId);
100
116
  _burn(tokenId);
101
117
  delete _uri[tokenId];
@@ -104,29 +120,36 @@ contract ChainNft is ERC721Enumerable, IChainNft {
104
120
  function setURI(
105
121
  uint256 tokenId,
106
122
  string memory uri
107
- ) external override onlyRegistry {
108
- require(bytes(uri).length > 0, "ERROR:CRG-011:URI_EMPTY");
123
+ ) external onlyRegistry {
124
+ if (bytes(uri).length == 0) { revert NftUriEmpty(); }
125
+ if (bytes(_uri[tokenId]).length > 0) { revert NftUriAlreadySet(); }
109
126
 
110
127
  _requireOwned(tokenId);
111
128
  _uri[tokenId] = uri;
112
129
  }
113
130
 
114
- function exists(uint256 tokenId) external view override returns (bool) {
131
+ function exists(uint256 tokenId) external view returns (bool) {
115
132
  return _ownerOf(tokenId) != address(0);
116
133
  }
117
134
 
118
135
  function tokenURI(
119
136
  uint256 tokenId
120
137
  ) public view override returns (string memory) {
138
+ // gif generally does not revert for view functions
139
+ // this is an exception to keep the openzeppelin nft semantics
121
140
  _requireOwned(tokenId);
122
141
  return _uri[tokenId];
123
142
  }
124
143
 
125
- function getRegistryAddress() external view override returns (address) {
144
+ function getInterceptor(uint256 tokenId) external view returns (address) {
145
+ return _interceptor[tokenId];
146
+ }
147
+
148
+ function getRegistryAddress() external view returns (address) {
126
149
  return _registry;
127
150
  }
128
151
 
129
- function totalMinted() external view override returns (uint256) {
152
+ function totalMinted() external view returns (uint256) {
130
153
  return _totalMinted;
131
154
  }
132
155
 
@@ -176,12 +199,4 @@ contract ChainNft is ERC721Enumerable, IChainNft {
176
199
  id = calculateTokenId(_idNext);
177
200
  _idNext++;
178
201
  }
179
-
180
- function _countDigits(uint256 num) private pure returns (uint256 count) {
181
- count = 0;
182
- while (num != 0) {
183
- count++;
184
- num /= 10;
185
- }
186
- }
187
202
  }
@@ -1,21 +1,31 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin5/contracts/utils/introspection/IERC165.sol";
4
+ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
5
5
 
6
- import {IOwnable} from "../shared/IOwnable.sol";
6
+ import {ChainNft} from "./ChainNft.sol";
7
7
  import {NftId} from "../types/NftId.sol";
8
8
  import {ObjectType} from "../types/ObjectType.sol";
9
9
  import {VersionPart} from "../types/Version.sol";
10
- import {IChainNft} from "./IChainNft.sol";
11
10
 
12
- interface IRegistry is IERC165, IOwnable {
13
-
14
- event LogRegistration(NftId indexed nftId, NftId parentNftId, ObjectType objectType, address objectAddress, address initialOwner);
11
+ interface IRegistry is IERC165 {
15
12
 
13
+ event LogInitialMajorVersionSet(VersionPart majorVersion);
14
+ event LogMajorVersionSet(VersionPart majorVersionMax);
15
+ event LogRegistration(ObjectInfo info);
16
16
  event LogServiceNameRegistration(string serviceName, VersionPart majorVersion);
17
17
 
18
- event LogApproval(NftId indexed nftId, ObjectType objectType);
18
+ // setMajorVersion()
19
+ error NotOwner(address account);
20
+ error MajorVersionMaxIncreaseInvalid(VersionPart newMajorVersionMax, VersionPart existingMaxMajorVersion);
21
+
22
+ // register()
23
+ error NotRegistryService();
24
+ error ZeroParentAddress();
25
+ error InvalidTypesCombination(ObjectType objectType, ObjectType parentType);
26
+ error ContractAlreadyRegistered(address objectAddress);
27
+ error InvalidServiceVersion(VersionPart majorVersion);
28
+ error ServiceNameAlreadyRegistered(string name, VersionPart majorVersion);
19
29
 
20
30
  struct ObjectInfo {
21
31
  NftId nftId;
@@ -26,42 +36,38 @@ interface IRegistry is IERC165, IOwnable {
26
36
  address initialOwner;
27
37
  bytes data;
28
38
  }// TODO delete nftId and initialOwner(if not used) from struct
39
+ // TODO strong disagree, keep nftId there (lets keep get object info return object consistent)
40
+
41
+ function setMajorVersion(VersionPart newMajorVersionMax) external;
29
42
 
30
43
  function register(ObjectInfo memory info) external returns (NftId nftId);
31
-
32
- function registerFrom(
33
- address from,
34
- ObjectInfo memory info
35
- ) external returns (NftId nftId);
36
-
37
- function approve(
38
- NftId registrar,
39
- ObjectType object,
40
- ObjectType parent
41
- ) external;
42
-
43
- function allowance(
44
- NftId registrar,
45
- ObjectType object
46
- ) external view returns (bool);
44
+
45
+ function getMajorVersionMin() external view returns (VersionPart);
46
+
47
+ function getMajorVersionMax() external view returns (VersionPart);
48
+
49
+ function getMajorVersion() external view returns (VersionPart);
47
50
 
48
51
  function getObjectCount() external view returns (uint256);
49
52
 
50
- //nftIdOf
53
+ function getNftId() external view returns (NftId nftId);
54
+
51
55
  function getNftId(address objectAddress) external view returns (NftId nftId);
52
56
 
53
57
  function ownerOf(NftId nftId) external view returns (address);
54
58
 
55
59
  function ownerOf(address contractAddress) external view returns (address);
56
- // infoOf()
60
+
57
61
  function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
58
- // infoOf()
62
+
59
63
  function getObjectInfo(address object) external view returns (ObjectInfo memory info);
60
64
 
61
65
  function isRegistered(NftId nftId) external view returns (bool);
62
66
 
63
67
  function isRegistered(address contractAddress) external view returns (bool);
64
68
 
69
+ function isRegisteredService(address contractAddress) external view returns (bool);
70
+
65
71
  function getServiceName(NftId nftId) external view returns (string memory name);
66
72
 
67
73
  function getServiceAddress(
@@ -69,5 +75,7 @@ interface IRegistry is IERC165, IOwnable {
69
75
  VersionPart majorVersion
70
76
  ) external view returns (address serviceAddress);
71
77
 
72
- function getChainNft() external view returns (IChainNft);
78
+ function getChainNft() external view returns (ChainNft);
79
+
80
+ function getOwner() external view returns (address);
73
81
  }
@@ -1,29 +1,50 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../../contracts/types/NftId.sol";
5
- import {ObjectType} from "../../contracts/types/ObjectType.sol";
6
- import {RoleId} from "../../contracts/types/RoleId.sol";
7
- import {IService} from "../../contracts/instance/base/IService.sol";
8
- import {IRegistry} from "../../contracts/registry/IRegistry.sol";
4
+ import {NftId} from "../types/NftId.sol";
5
+ import {ObjectType} from "../types/ObjectType.sol";
6
+ import {RoleId} from "../types/RoleId.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {IRegistry} from "./IRegistry.sol";
9
9
 
10
- import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
11
- import {IBaseComponent} from "../../contracts/components/IBaseComponent.sol";
10
+ import {IRegisterable} from "../shared/IRegisterable.sol";
11
+ import {IBaseComponent} from "../components/IBaseComponent.sol";
12
12
 
13
13
  interface IRegistryService is IService {
14
14
 
15
- function registerToken(address tokenAddress) external returns(NftId nftId);
15
+ error SelfRegistration();
16
+ error NotRegistryOwner();
16
17
 
17
- function registerService(IService service) external returns(IRegistry.ObjectInfo memory info, bytes memory data);
18
+ error NotService();
19
+ error NotInstance();
20
+ error NotProduct();
21
+ error NotPool();
22
+ error NotDistribution();
18
23
 
19
- function registerComponent(IBaseComponent component, ObjectType componentType, address owner)
20
- external returns(IRegistry.ObjectInfo memory info, bytes memory data);
24
+ error UnexpectedRegisterableType(ObjectType expected, ObjectType found);
25
+ error NotRegisterableOwner(address expectedOwner);
26
+ error RegisterableOwnerIsZero();
27
+ error RegisterableOwnerIsRegistered();
28
+ error InvalidInitialOwner(address initialOwner);
29
+ error InvalidAddress(address registerableAddress);
21
30
 
22
- function registerInstance(IRegisterable instance)
23
- external returns(IRegistry.ObjectInfo memory info, bytes memory data);
24
31
 
25
- function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId); // -> easy to upgrade
32
+ function registerService(IService service) external returns(IRegistry.ObjectInfo memory info, bytes memory data);
26
33
 
27
- function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
34
+ function registerInstance(IRegisterable instance)
35
+ external returns(IRegistry.ObjectInfo memory info, bytes memory data);
36
+
37
+ function registerProduct(IBaseComponent product, address owner)
38
+ external returns(IRegistry.ObjectInfo memory info, bytes memory data);
39
+
40
+ function registerPool(IBaseComponent pool, address owner)
41
+ external returns(IRegistry.ObjectInfo memory info, bytes memory data);
42
+
43
+ function registerDistribution(IBaseComponent distribution, address owner)
44
+ external returns(IRegistry.ObjectInfo memory info, bytes memory data);
45
+
46
+ function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId); // -> easy to upgrade
47
+
48
+ function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
28
49
  }
29
50