@etherisc/gif-next 0.0.2-da77c50-824 → 0.0.2-dd8bcd0-978

Sign up to get free protection for your applications and to get access to all the features.
Files changed (407) hide show
  1. package/README.md +242 -11
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +318 -23
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +772 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +233 -23
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +152 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +90 -171
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +55 -177
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +643 -63
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +648 -70
  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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  45. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  46. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  47. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  48. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  49. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  50. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +928 -1226
  52. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  53. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  54. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  55. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +587 -0
  56. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/Instance.sol/Instance.json +1938 -1191
  58. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  59. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1057 -0
  60. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +572 -122
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1085 -0
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +532 -0
  68. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  70. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +521 -0
  72. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
  74. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  76. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  77. package/artifacts/contracts/instance/{module/lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  78. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +502 -0
  80. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  83. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +243 -0
  84. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  85. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  86. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  87. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  88. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  90. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IRisk.sol/IRisk.json} +2 -2
  92. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  93. package/artifacts/contracts/instance/module/{pool/IPoolModule.sol/IPool.json → ISetup.sol/ISetup.json} +2 -2
  94. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  95. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  96. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  97. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +923 -0
  98. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +440 -0
  100. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  101. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +393 -85
  102. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  103. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +684 -0
  104. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +428 -0
  106. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  107. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +669 -0
  108. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  109. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +182 -80
  110. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  111. package/artifacts/contracts/instance/service/{ComponentServiceBase.sol/ComponentServiceBase.json → IDistributionService.sol/IDistributionService.json} +209 -63
  112. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  113. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +664 -0
  114. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  115. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +199 -76
  116. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  117. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +207 -148
  118. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  119. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +984 -0
  120. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +464 -0
  122. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  123. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +322 -103
  124. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  125. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +428 -0
  126. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  127. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +316 -233
  128. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  130. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  131. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  132. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +377 -37
  134. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  135. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +947 -0
  136. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  138. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  139. package/artifacts/contracts/registry/Registry.sol/Registry.json +487 -123
  140. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  141. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1293 -0
  142. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +517 -0
  144. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  145. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
  146. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  148. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  149. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  150. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  151. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  152. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  154. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  155. package/artifacts/contracts/{instance/service → shared}/IService.sol/IService.json +180 -59
  156. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  157. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +60 -19
  158. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  159. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  160. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  161. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  162. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  163. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  164. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +442 -0
  166. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/service/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +227 -59
  168. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  169. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  170. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  171. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  172. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +83 -19
  174. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  175. package/artifacts/contracts/test/TestFee.sol/TestFee.json +30 -6
  176. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  177. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  178. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  179. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +44 -10
  180. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  181. package/artifacts/contracts/test/TestService.sol/TestService.json +277 -84
  182. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  183. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  184. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  185. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +14 -18
  186. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  187. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +106 -50
  188. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  189. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  190. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  191. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  194. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  195. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  196. package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
  197. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  198. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  199. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  200. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
  201. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  202. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  203. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  204. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  205. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  206. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  207. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  208. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  209. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  210. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  211. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  212. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  213. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  214. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  215. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  216. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  217. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  218. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  219. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  220. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  221. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  222. package/artifacts/contracts/types/Version.sol/VersionLib.json +101 -2
  223. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  224. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  225. package/contracts/components/BaseComponent.sol +88 -32
  226. package/contracts/components/Distribution.sol +163 -0
  227. package/contracts/components/IBaseComponent.sol +16 -3
  228. package/contracts/components/IDistributionComponent.sol +44 -0
  229. package/contracts/components/IPoolComponent.sol +19 -10
  230. package/contracts/components/IProductComponent.sol +25 -9
  231. package/contracts/components/Pool.sol +132 -35
  232. package/contracts/components/Product.sol +211 -36
  233. package/contracts/experiment/cloning/Cloner.sol +47 -0
  234. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  235. package/contracts/instance/BundleManager.sol +129 -0
  236. package/contracts/instance/Cloneable.sol +46 -0
  237. package/contracts/instance/IInstance.sol +53 -43
  238. package/contracts/instance/IInstanceBase.sol +26 -0
  239. package/contracts/instance/IInstanceService.sol +42 -0
  240. package/contracts/instance/Instance.sol +260 -46
  241. package/contracts/instance/InstanceAccessManager.sol +304 -0
  242. package/contracts/instance/InstanceBase.sol +33 -66
  243. package/contracts/instance/InstanceReader.sol +315 -0
  244. package/contracts/instance/InstanceService.sol +310 -0
  245. package/contracts/instance/InstanceServiceManager.sol +57 -0
  246. package/contracts/instance/ObjectManager.sol +101 -0
  247. package/contracts/instance/base/ComponentServiceBase.sol +72 -0
  248. package/contracts/instance/base/IInstanceBase.sol +23 -0
  249. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  250. package/contracts/instance/base/ILifecycle.sol +30 -0
  251. package/contracts/instance/base/KeyValueStore.sol +172 -0
  252. package/contracts/instance/{module/lifecycle/LifecycleModule.sol → base/Lifecycle.sol} +51 -40
  253. package/contracts/instance/module/IAccess.sol +48 -0
  254. package/contracts/instance/module/IBundle.sol +20 -0
  255. package/contracts/instance/module/IDistribution.sol +39 -0
  256. package/contracts/instance/module/IPolicy.sol +45 -0
  257. package/contracts/instance/module/IRisk.sol +11 -0
  258. package/contracts/instance/module/ISetup.sol +46 -0
  259. package/contracts/instance/module/ITreasury.sol +23 -0
  260. package/contracts/instance/service/BundleService.sol +260 -0
  261. package/contracts/instance/service/BundleServiceManager.sol +54 -0
  262. package/contracts/instance/service/ComponentOwnerService.sol +246 -103
  263. package/contracts/instance/service/DistributionService.sol +118 -0
  264. package/contracts/instance/service/DistributionServiceManager.sol +54 -0
  265. package/contracts/instance/service/IBundleService.sol +45 -0
  266. package/contracts/instance/service/IComponentOwnerService.sol +1 -3
  267. package/contracts/instance/service/IDistributionService.sol +12 -0
  268. package/contracts/instance/service/IPolicyService.sol +87 -0
  269. package/contracts/instance/service/IPoolService.sol +8 -18
  270. package/contracts/instance/service/IProductService.sol +21 -39
  271. package/contracts/instance/service/PolicyService.sol +508 -0
  272. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  273. package/contracts/instance/service/PoolService.sol +89 -63
  274. package/contracts/instance/service/PoolServiceManager.sol +54 -0
  275. package/contracts/instance/service/ProductService.sol +112 -297
  276. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  277. package/contracts/registry/ChainNft.sol +80 -37
  278. package/contracts/registry/IRegistry.sol +49 -25
  279. package/contracts/registry/IRegistryService.sol +50 -0
  280. package/contracts/registry/ITransferInterceptor.sol +6 -0
  281. package/contracts/registry/Registry.sol +337 -270
  282. package/contracts/registry/RegistryService.sol +358 -0
  283. package/contracts/registry/RegistryServiceManager.sol +80 -0
  284. package/contracts/registry/TokenRegistry.sol +111 -0
  285. package/contracts/shared/ContractDeployerLib.sol +72 -0
  286. package/contracts/shared/ERC165.sol +6 -2
  287. package/contracts/shared/INftOwnable.sol +22 -0
  288. package/contracts/shared/IRegisterable.sol +8 -15
  289. package/contracts/{instance/service → shared}/IService.sol +3 -3
  290. package/contracts/shared/IVersionable.sol +56 -12
  291. package/contracts/shared/NftOwnable.sol +134 -0
  292. package/contracts/shared/ProxyManager.sol +94 -0
  293. package/contracts/shared/Registerable.sol +63 -59
  294. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  295. package/contracts/shared/Service.sol +55 -0
  296. package/contracts/shared/TokenHandler.sol +27 -0
  297. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  298. package/contracts/shared/Versionable.sol +112 -57
  299. package/contracts/test/TestFee.sol +4 -4
  300. package/contracts/test/TestRegisterable.sol +5 -6
  301. package/contracts/test/TestRoleId.sol +2 -2
  302. package/contracts/test/TestService.sol +6 -17
  303. package/contracts/test/TestVersion.sol +4 -7
  304. package/contracts/test/TestVersionable.sol +2 -5
  305. package/contracts/test/Usdc.sol +26 -0
  306. package/contracts/types/DistributorType.sol +55 -0
  307. package/contracts/types/Fee.sol +44 -20
  308. package/contracts/types/Key32.sol +50 -0
  309. package/contracts/types/NftId.sol +16 -1
  310. package/contracts/types/NftIdSet.sol +26 -24
  311. package/contracts/types/NumberId.sol +52 -0
  312. package/contracts/types/ObjectType.sol +51 -14
  313. package/contracts/types/Referral.sol +85 -0
  314. package/contracts/types/RiskId.sol +43 -0
  315. package/contracts/types/RoleId.sol +66 -11
  316. package/contracts/types/StateId.sol +12 -2
  317. package/contracts/types/Timestamp.sol +7 -3
  318. package/contracts/types/UFixed.sol +144 -25
  319. package/contracts/types/Version.sol +42 -26
  320. package/package.json +4 -3
  321. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  322. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  323. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
  324. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.json +0 -50
  325. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  326. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  327. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  328. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  329. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  330. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  331. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -276
  332. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  333. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  334. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -276
  335. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  336. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  337. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  338. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  339. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  340. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  341. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  342. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  343. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  344. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  345. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  346. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  347. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  348. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  349. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  350. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  351. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  352. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  353. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  354. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  355. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  356. package/artifacts/contracts/instance/module/product/IProductModule.sol/IProductModule.dbg.json +0 -4
  357. package/artifacts/contracts/instance/module/product/IProductModule.sol/IProductModule.json +0 -10
  358. package/artifacts/contracts/instance/module/product/ProductModule.sol/ProductModule.dbg.json +0 -4
  359. package/artifacts/contracts/instance/module/product/ProductModule.sol/ProductModule.json +0 -10
  360. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  361. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  362. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -538
  363. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  364. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  365. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  366. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -538
  367. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  368. package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
  369. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  370. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  371. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  372. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  373. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  374. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  375. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  376. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  377. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  378. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  379. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  380. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  381. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  382. package/contracts/experiment/statemachine/README.md +0 -112
  383. package/contracts/instance/IInstanceLinked.sol +0 -8
  384. package/contracts/instance/IServiceLinked.sol +0 -12
  385. package/contracts/instance/module/access/Access.sol +0 -149
  386. package/contracts/instance/module/access/IAccess.sol +0 -53
  387. package/contracts/instance/module/bundle/BundleModule.sol +0 -228
  388. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  389. package/contracts/instance/module/component/ComponentModule.sol +0 -104
  390. package/contracts/instance/module/component/IComponent.sol +0 -53
  391. package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
  392. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  393. package/contracts/instance/module/policy/PolicyModule.sol +0 -84
  394. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  395. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  396. package/contracts/instance/module/product/IProductModule.sol +0 -6
  397. package/contracts/instance/module/product/ProductModule.sol +0 -8
  398. package/contracts/instance/module/treasury/ITreasury.sol +0 -104
  399. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  400. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -148
  401. package/contracts/instance/service/ComponentServiceBase.sol +0 -41
  402. package/contracts/instance/service/ServiceBase.sol +0 -39
  403. package/contracts/registry/IChainNft.sol +0 -21
  404. package/contracts/registry/IRegistryLinked.sol +0 -8
  405. package/contracts/shared/IOwnable.sol +0 -6
  406. package/contracts/test/TestPool.sol +0 -22
  407. package/contracts/test/TestProduct.sol +0 -44
package/README.md CHANGED
@@ -1,4 +1,23 @@
1
- # gif-next (Generic Insurance Framework next version)
1
+ # GIF-Next (Generic Insurance Framework, next version)
2
+
3
+ ## Add OpenZeppelin V5 Dependencies
4
+
5
+ ```shell
6
+ forge install openzeppelin-contracts-500=OpenZeppelin/openzeppelin-contracts@v5.0.0
7
+ cd cd lib/openzeppelin-contracts-500
8
+ git checkout tags/v5.0.0
9
+ cd ../..
10
+ ```
11
+
12
+ See `remappings.txt` to see how to work with different OpenZeppelin versions in parallel
13
+
14
+ ```
15
+ cat remappings.txt
16
+ @openzeppelin5/contracts/=lib/openzeppelin-contracts-500/contracts/
17
+ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
18
+ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
19
+ ```
20
+
2
21
 
3
22
  ## Submodules checkout
4
23
 
@@ -21,24 +40,37 @@ npm run test-with-gas
21
40
  npm run coverage
22
41
  ```
23
42
 
24
- ### Deployment
43
+ ### Docgen
25
44
 
26
- ```
27
- hh run --network <networkname> scripts/deploy.ts
45
+ Produce `solidty-docgen` documentation using the command below.
46
+
47
+ ```shell
48
+ hh docgen
28
49
  ```
29
50
 
30
- Networks:
31
- - hardhat (dynamically created network - https://hardhat.org/hardhat-network/docs/overview)
32
- - anvil (anvsil chain running in container next when using devcontainer)
33
- - mumbai (polygon testnet, requires WEB3_INFURA_PROJECT_ID)
34
- - mainnet (polygon mainnet, requires WEB3_INFURA_PROJECT_ID)
51
+ The resulting markdown files are written to `docs`
35
52
 
36
53
 
37
- #### Deply all script
54
+ ### Full protocol deployment
38
55
 
39
- The deploy all script will deploy all required contracts and create a test instance with a test product and a test pool.
56
+ Install the dependencies before running the script below for the first time.
40
57
 
58
+ ```bash
59
+ npm install
41
60
  ```
61
+
62
+ The deploy script will deploy all required contracts and create a test instance with a test product and a test pool.
63
+
64
+ ```bash
65
+ # run deployment on a locally created ganache instance
66
+ export SKIP_VERIFICATION=true
67
+ hh run scripts/deploy_all.ts
68
+ ```
69
+
70
+ ```bash
71
+ # set appropriate values vor env variables (see below)
72
+
73
+ # run deployment on another network
42
74
  hh run --network <networkname> scripts/deploy_all.ts
43
75
  ```
44
76
 
@@ -49,6 +81,25 @@ Environment variables:
49
81
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
50
82
  - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
51
83
 
84
+ ### Create a new instance
85
+
86
+ Requires previous step to be completed.
87
+
88
+ ```bash
89
+ # set appropriate values vor env variables (see below)
90
+
91
+ hh run --network <networkname> scripts/new_instance.ts
92
+ ```
93
+
94
+ Currently an HD wallet is expected to be used for the deployment. The mnemonic of the wallet needs to be provided via the `WALLET_MNEMONIC` environment variable.
95
+ The instance owner will be the 11th address of the wallet.
96
+
97
+ Environment variables:
98
+
99
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
100
+ - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
101
+ - `REGISTRY_ADDRESS` the address of the registry that is already deployed and configured and has a valid master instance
102
+
52
103
 
53
104
  ### Console
54
105
 
@@ -87,7 +138,11 @@ forge test -vvvv --mt test_decimals
87
138
  # provide gas report for a single test
88
139
  forge test --mt test_decimals --gas-report
89
140
 
141
+ # provide code coverage report
90
142
  forge coverage
143
+ forge coverage --report lcov
144
+
145
+
91
146
  ```
92
147
 
93
148
  Chisel session
@@ -199,6 +254,7 @@ sudo apt update
199
254
  sudo apt install python3-pip
200
255
  pip install eth-brownie
201
256
  brownie pm install OpenZeppelin/openzeppelin-contracts@4.9.3
257
+ brownie pm install OpenZeppelin/openzeppelin-contracts@5.0.0
202
258
  ```
203
259
 
204
260
  ```bash
@@ -250,3 +306,178 @@ pool_id = pool.getNftId()
250
306
  product_id = product.getNftId()
251
307
  ```
252
308
 
309
+ ## Objects
310
+
311
+ ### Registry
312
+
313
+ Mandatory properties
314
+
315
+ * One registry per chain
316
+ * Global registry: the registry on mainnet
317
+ * One entry per protocol object
318
+ * Once registered object properties are immutable
319
+ * Globally unique NFT minted per protocol object (chain id is embedded in NFT id)
320
+ * Object ownership defined by NFT ownernship
321
+ * Typed objects (instance, product, policy, ...)
322
+ * Each object has parent object (only one exception: protocol object does not have parent object)
323
+ * Parent object type is defined by type of child object
324
+
325
+ Object properties (for smart contracts)
326
+ * Objects that represent a smart contract record its contract address
327
+ * With one exception (see next point) smart contract addresses refer to the address on the same chain as the registry
328
+ * The global registry also holds entries for all the registries on different chains than mainnet, in these cases the addresses refer to the chains of these chain specific registries (this is the only case where registered addresses do not refer to the same chain)
329
+
330
+ Optional properties
331
+
332
+ * Objects can have names
333
+ * Object names are unique per chain
334
+ * Objects may define an intercepting property, in which case a predefined smart contract is involved in NFT transfers of the objects NFT (transfer may trigger actions, transfer may be blocked etc)
335
+ *
336
+
337
+ Ownership property
338
+
339
+ * Object ownership defined by ownership of NFT representing the object
340
+ * Protocol
341
+ * Fixed/predefined owner (address without private key)
342
+ * Registry
343
+ * Allows registration of token and services (per major release)
344
+ * May transfer ownership
345
+ * Token
346
+ * Fixed/predefined owner (address without private key)
347
+ * TODO add whitelisting for token per major release
348
+ * Service
349
+ * Allows upgrades of services as long as major version is same
350
+ * Until further notice the same entity as the registry owner
351
+ * May transfer ownership
352
+ * Instance
353
+ * Granting/revoking of roles (both default + custom)
354
+ * Management of custom roles and targets
355
+ * May lock instance and/or components
356
+ * May transfer ownership
357
+ * Component (Product, Pool, Distribution, Oracle)
358
+ * Register component
359
+ * Set component wallet (which receives fees, holds funds)
360
+ * May lock component
361
+ * May transfer ownership
362
+ * Additional use case specific features
363
+ * Policy
364
+ * Represents policy holder
365
+ * Receive payouts (GIF default behaviour)
366
+ * May transfer ownership
367
+ * Bundle
368
+ * Represents funds owner
369
+ * May withdraw funds not locked by active policies
370
+ * May transfer ownership
371
+ * Distributor
372
+ * Receives commissions from sales (GIF default behaviour)
373
+ * May transfer ownership
374
+
375
+ Intercepting property
376
+ * Service owner is indirectly owner of service manager contract
377
+
378
+ * Instance
379
+ * intercepts transfer of instance owner (new owner needs access manager admin rights for custom roles and targets)
380
+ * intercepts transfer of components, to do what? check that new owner has necessary roles?
381
+ * Product
382
+ * intercepts transfer of policies (use case specific: eg. limit/disallow transfers)
383
+ * Pool:
384
+ * intercepts transfer of bundles (use case specific: eg. limit/disallow transfers)
385
+ * Distribution
386
+ * intercepts transfer of distributors (bookkeeping: only one distributor per address allowed)
387
+ * Oracle
388
+ * likely meaningless
389
+
390
+
391
+ ### Instance
392
+
393
+ ### Product
394
+
395
+ ### Pool
396
+
397
+ ### Distribution
398
+
399
+ ### Oracle
400
+
401
+ ## Registry and Services
402
+
403
+ ### Principles
404
+
405
+ - 1 service per object type and major version
406
+ - registry service guards write access to registry
407
+ - all other objects registered via registry service
408
+ - root object for the complete tree is the protocol object
409
+ - under the root object a single registry object is registered (= global registry/ethereum mainnet)
410
+
411
+
412
+ ### Service Responsibilities
413
+
414
+ Registry Service
415
+
416
+ - deployed and registered during bootstrapping of registry
417
+ - used to register tokens and other services by registry owner
418
+ - an object may only be registered by the service designated by the type of the object
419
+ - to register an object the parent object needs already be registered
420
+ - the type of the object to be registered needs to match a valid child type/parent type combination
421
+
422
+ Instance Service
423
+
424
+ - deploys master instance during its own bootstrapping (if allowed by contract size)
425
+ - registered via registry service by registry owner
426
+ - registeres master instance during its own registration by regsitry owner
427
+ - deploys and registeres new instances (= instance factory) by instance owner (instance owner is a permissionless role, anybody may creates a new instance)
428
+ - provides upgrade functionality to instance owners
429
+
430
+ Product Service
431
+
432
+ - registered via registry service by registry owner
433
+ - registers products for registered instances via registry service by product owner (product owner role is permissend by the product's instance)
434
+ - registers applications/policies for registered products via registry service
435
+
436
+ Distribution Service
437
+
438
+ - registered via registry service by registry owner
439
+ - registers distribution components for registered products via registry service by distribution owner (distribution owner role is permissend by the product's instance)
440
+ - registers distributors for registered distribution components via registry service
441
+
442
+ ## Contract Organisation
443
+
444
+ now
445
+
446
+ contracts
447
+ components
448
+ instance
449
+ registry
450
+ shared
451
+ types
452
+
453
+
454
+ contracts
455
+ component
456
+ pool
457
+ Pool.sol
458
+ PoolService.sol
459
+ oracle
460
+ distribution
461
+ product
462
+ Product.sol
463
+ ProductService.sol
464
+ Component.sol
465
+ ComponentService.sol
466
+ instance
467
+ Instance.sol
468
+ InstanceAccessManager.sol
469
+ InstanceReader.sol
470
+ InstanceService.sol
471
+ InstanceServiceManager.sol
472
+ registry
473
+ ChainNft.sol
474
+ Registry.sol
475
+ RegistryService.sol
476
+ RegistryServiceManager.sol
477
+ shared
478
+ Registerable.sol
479
+ RegisterableUpgradable.sol
480
+ type
481
+ NftId.sol
482
+ ObjectType.sol
483
+
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/73036ef8d3587a4d497b53a8e5f6bc33.json"
3
+ "buildInfo": "../../../build-info/bea4ce8b3f4fa18bd335b8b4e889e43b.json"
4
4
  }
@@ -3,10 +3,298 @@
3
3
  "contractName": "BaseComponent",
4
4
  "sourceName": "contracts/components/BaseComponent.sol",
5
5
  "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "target",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "name": "AddressEmptyCode",
15
+ "type": "error"
16
+ },
17
+ {
18
+ "inputs": [
19
+ {
20
+ "internalType": "address",
21
+ "name": "account",
22
+ "type": "address"
23
+ }
24
+ ],
25
+ "name": "AddressInsufficientBalance",
26
+ "type": "error"
27
+ },
28
+ {
29
+ "inputs": [
30
+ {
31
+ "internalType": "address",
32
+ "name": "registry",
33
+ "type": "address"
34
+ },
35
+ {
36
+ "internalType": "NftId",
37
+ "name": "nftId",
38
+ "type": "uint96"
39
+ }
40
+ ],
41
+ "name": "ErrorAlreadyLinked",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "caller",
49
+ "type": "address"
50
+ },
51
+ {
52
+ "internalType": "uint64",
53
+ "name": "requiredRoleIdNum",
54
+ "type": "uint64"
55
+ }
56
+ ],
57
+ "name": "ErrorBaseComponentUnauthorized",
58
+ "type": "error"
59
+ },
60
+ {
61
+ "inputs": [
62
+ {
63
+ "internalType": "address",
64
+ "name": "newWallet",
65
+ "type": "address"
66
+ }
67
+ ],
68
+ "name": "ErrorBaseComponentWalletAddressIsSameAsCurrent",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "oldWallet",
76
+ "type": "address"
77
+ },
78
+ {
79
+ "internalType": "address",
80
+ "name": "newWallet",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "internalType": "uint256",
85
+ "name": "allowance",
86
+ "type": "uint256"
87
+ },
88
+ {
89
+ "internalType": "uint256",
90
+ "name": "balance",
91
+ "type": "uint256"
92
+ }
93
+ ],
94
+ "name": "ErrorBaseComponentWalletAllowanceTooSmall",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [
99
+ {
100
+ "internalType": "address",
101
+ "name": "contractAddress",
102
+ "type": "address"
103
+ }
104
+ ],
105
+ "name": "ErrorContractNotRegistered",
106
+ "type": "error"
107
+ },
108
+ {
109
+ "inputs": [
110
+ {
111
+ "internalType": "address",
112
+ "name": "account",
113
+ "type": "address"
114
+ }
115
+ ],
116
+ "name": "ErrorNotOwner",
117
+ "type": "error"
118
+ },
119
+ {
120
+ "inputs": [
121
+ {
122
+ "internalType": "address",
123
+ "name": "registryAddress",
124
+ "type": "address"
125
+ }
126
+ ],
127
+ "name": "ErrorNotRegistry",
128
+ "type": "error"
129
+ },
130
+ {
131
+ "inputs": [
132
+ {
133
+ "internalType": "address",
134
+ "name": "registryAddress",
135
+ "type": "address"
136
+ }
137
+ ],
138
+ "name": "ErrorRegisterableNotRegistry",
139
+ "type": "error"
140
+ },
6
141
  {
7
142
  "inputs": [],
8
- "name": "getData",
143
+ "name": "ErrorRegistryAddressZero",
144
+ "type": "error"
145
+ },
146
+ {
147
+ "inputs": [
148
+ {
149
+ "internalType": "address",
150
+ "name": "registry",
151
+ "type": "address"
152
+ }
153
+ ],
154
+ "name": "ErrorRegistryAlreadyInitialized",
155
+ "type": "error"
156
+ },
157
+ {
158
+ "inputs": [],
159
+ "name": "ErrorRegistryNotInitialized",
160
+ "type": "error"
161
+ },
162
+ {
163
+ "inputs": [],
164
+ "name": "FailedInnerCall",
165
+ "type": "error"
166
+ },
167
+ {
168
+ "inputs": [],
169
+ "name": "InvalidInitialization",
170
+ "type": "error"
171
+ },
172
+ {
173
+ "inputs": [],
174
+ "name": "NotInitializing",
175
+ "type": "error"
176
+ },
177
+ {
178
+ "inputs": [
179
+ {
180
+ "internalType": "address",
181
+ "name": "token",
182
+ "type": "address"
183
+ }
184
+ ],
185
+ "name": "SafeERC20FailedOperation",
186
+ "type": "error"
187
+ },
188
+ {
189
+ "anonymous": false,
190
+ "inputs": [
191
+ {
192
+ "indexed": false,
193
+ "internalType": "uint64",
194
+ "name": "version",
195
+ "type": "uint64"
196
+ }
197
+ ],
198
+ "name": "Initialized",
199
+ "type": "event"
200
+ },
201
+ {
202
+ "anonymous": false,
203
+ "inputs": [
204
+ {
205
+ "indexed": false,
206
+ "internalType": "address",
207
+ "name": "newWallet",
208
+ "type": "address"
209
+ }
210
+ ],
211
+ "name": "LogBaseComponentWalletAddressChanged",
212
+ "type": "event"
213
+ },
214
+ {
215
+ "anonymous": false,
216
+ "inputs": [
217
+ {
218
+ "indexed": false,
219
+ "internalType": "address",
220
+ "name": "from",
221
+ "type": "address"
222
+ },
223
+ {
224
+ "indexed": false,
225
+ "internalType": "address",
226
+ "name": "to",
227
+ "type": "address"
228
+ },
229
+ {
230
+ "indexed": false,
231
+ "internalType": "uint256",
232
+ "name": "amount",
233
+ "type": "uint256"
234
+ }
235
+ ],
236
+ "name": "LogBaseComponentWalletTokensTransferred",
237
+ "type": "event"
238
+ },
239
+ {
240
+ "inputs": [],
241
+ "name": "REGISTERABLE_LOCATION_V1",
9
242
  "outputs": [
243
+ {
244
+ "internalType": "bytes32",
245
+ "name": "",
246
+ "type": "bytes32"
247
+ }
248
+ ],
249
+ "stateMutability": "view",
250
+ "type": "function"
251
+ },
252
+ {
253
+ "inputs": [],
254
+ "name": "getInitialInfo",
255
+ "outputs": [
256
+ {
257
+ "components": [
258
+ {
259
+ "internalType": "NftId",
260
+ "name": "nftId",
261
+ "type": "uint96"
262
+ },
263
+ {
264
+ "internalType": "NftId",
265
+ "name": "parentNftId",
266
+ "type": "uint96"
267
+ },
268
+ {
269
+ "internalType": "ObjectType",
270
+ "name": "objectType",
271
+ "type": "uint8"
272
+ },
273
+ {
274
+ "internalType": "bool",
275
+ "name": "isInterceptor",
276
+ "type": "bool"
277
+ },
278
+ {
279
+ "internalType": "address",
280
+ "name": "objectAddress",
281
+ "type": "address"
282
+ },
283
+ {
284
+ "internalType": "address",
285
+ "name": "initialOwner",
286
+ "type": "address"
287
+ },
288
+ {
289
+ "internalType": "bytes",
290
+ "name": "data",
291
+ "type": "bytes"
292
+ }
293
+ ],
294
+ "internalType": "struct IRegistry.ObjectInfo",
295
+ "name": "",
296
+ "type": "tuple"
297
+ },
10
298
  {
11
299
  "internalType": "bytes",
12
300
  "name": "data",
@@ -35,7 +323,7 @@
35
323
  "outputs": [
36
324
  {
37
325
  "internalType": "NftId",
38
- "name": "nftId",
326
+ "name": "",
39
327
  "type": "uint96"
40
328
  }
41
329
  ],
@@ -48,7 +336,7 @@
48
336
  "outputs": [
49
337
  {
50
338
  "internalType": "address",
51
- "name": "owner",
339
+ "name": "",
52
340
  "type": "address"
53
341
  }
54
342
  ],
@@ -57,11 +345,11 @@
57
345
  },
58
346
  {
59
347
  "inputs": [],
60
- "name": "getParentNftId",
348
+ "name": "getProductNftId",
61
349
  "outputs": [
62
350
  {
63
351
  "internalType": "NftId",
64
- "name": "nftId",
352
+ "name": "productNftId",
65
353
  "type": "uint96"
66
354
  }
67
355
  ],
@@ -74,7 +362,7 @@
74
362
  "outputs": [
75
363
  {
76
364
  "internalType": "contract IRegistry",
77
- "name": "registry",
365
+ "name": "",
78
366
  "type": "address"
79
367
  }
80
368
  ],
@@ -94,19 +382,6 @@
94
382
  "stateMutability": "view",
95
383
  "type": "function"
96
384
  },
97
- {
98
- "inputs": [],
99
- "name": "getType",
100
- "outputs": [
101
- {
102
- "internalType": "ObjectType",
103
- "name": "objectType",
104
- "type": "uint8"
105
- }
106
- ],
107
- "stateMutability": "pure",
108
- "type": "function"
109
- },
110
385
  {
111
386
  "inputs": [],
112
387
  "name": "getWallet",
@@ -122,21 +397,41 @@
122
397
  },
123
398
  {
124
399
  "inputs": [],
125
- "name": "lock",
400
+ "name": "linkToRegisteredNftId",
126
401
  "outputs": [],
127
402
  "stateMutability": "nonpayable",
128
403
  "type": "function"
129
404
  },
130
405
  {
131
406
  "inputs": [],
132
- "name": "register",
133
- "outputs": [
407
+ "name": "lock",
408
+ "outputs": [],
409
+ "stateMutability": "nonpayable",
410
+ "type": "function"
411
+ },
412
+ {
413
+ "inputs": [
134
414
  {
135
415
  "internalType": "NftId",
136
- "name": "componentId",
416
+ "name": "productNftId",
137
417
  "type": "uint96"
138
418
  }
139
419
  ],
420
+ "name": "setProductNftId",
421
+ "outputs": [],
422
+ "stateMutability": "nonpayable",
423
+ "type": "function"
424
+ },
425
+ {
426
+ "inputs": [
427
+ {
428
+ "internalType": "address",
429
+ "name": "newWallet",
430
+ "type": "address"
431
+ }
432
+ ],
433
+ "name": "setWallet",
434
+ "outputs": [],
140
435
  "stateMutability": "nonpayable",
141
436
  "type": "function"
142
437
  },
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/bea4ce8b3f4fa18bd335b8b4e889e43b.json"
4
+ }