@etherisc/gif-next 0.0.2-d408403-475 → 0.0.2-d551b5e-892

Sign up to get free protection for your applications and to get access to all the features.
Files changed (402) hide show
  1. package/README.md +231 -27
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +302 -23
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +393 -54
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +217 -23
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -188
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +15 -227
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -213
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +460 -99
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +491 -80
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  36. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  42. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  44. package/artifacts/contracts/instance/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/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  51. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  52. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  53. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +868 -1164
  54. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  55. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +485 -0
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +2421 -1250
  60. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +940 -0
  62. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  64. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  66. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +999 -0
  68. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +532 -0
  70. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  71. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  72. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +264 -43
  74. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +1 -1
  76. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
  78. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  79. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  80. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +37 -245
  81. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  82. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  83. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  84. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  85. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  86. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  87. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  89. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  90. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  91. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  92. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  93. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  94. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  95. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  96. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  97. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  98. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +375 -79
  99. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +317 -53
  101. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  102. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +428 -0
  103. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  104. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +177 -75
  105. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +174 -53
  107. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  108. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +664 -0
  109. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  110. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +337 -49
  111. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  112. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +171 -263
  113. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  114. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +984 -0
  115. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  116. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +464 -0
  117. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  118. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +527 -53
  119. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +448 -0
  121. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  122. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +290 -359
  123. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  125. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  126. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  127. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  128. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +377 -37
  129. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  130. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +947 -0
  131. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  132. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  133. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  134. package/artifacts/contracts/registry/Registry.sol/Registry.json +487 -123
  135. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  136. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1293 -0
  137. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +517 -0
  139. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  140. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +410 -0
  141. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  142. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  143. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  144. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  145. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  146. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +67 -57
  147. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  148. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  149. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  150. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +168 -123
  151. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  152. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  153. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  154. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  155. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  156. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  157. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  158. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  159. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  160. package/artifacts/contracts/{instance/base/IService.sol/IService.json → shared/RegisterableUpgradable.sol/RegisterableUpgradable.json} +215 -73
  161. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +222 -54
  163. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  164. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  165. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  166. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  167. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  168. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  169. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  170. package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
  171. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  172. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  173. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  174. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  175. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  176. package/artifacts/contracts/test/TestService.sol/TestService.json +283 -62
  177. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  178. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  179. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  180. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  181. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  182. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +103 -23
  183. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  184. package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
  185. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  186. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  188. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  189. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  190. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/Fee.sol/FeeLib.json +4 -4
  192. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  193. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  194. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  196. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  197. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  198. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  199. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  200. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  202. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  203. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  204. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  205. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  206. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  207. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  208. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  209. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  210. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  211. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  212. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  213. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  214. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  215. package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
  216. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  217. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  218. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  219. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  220. package/contracts/components/BaseComponent.sol +75 -37
  221. package/contracts/components/Distribution.sol +49 -18
  222. package/contracts/components/IBaseComponent.sol +15 -3
  223. package/contracts/components/IDistributionComponent.sol +3 -7
  224. package/contracts/components/IPoolComponent.sol +7 -12
  225. package/contracts/components/IProductComponent.sol +4 -7
  226. package/contracts/components/Pool.sol +111 -79
  227. package/contracts/components/Product.sol +118 -53
  228. package/contracts/experiment/cloning/Cloner.sol +47 -0
  229. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  230. package/contracts/instance/BundleManager.sol +129 -0
  231. package/contracts/instance/Cloneable.sol +46 -0
  232. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  233. package/contracts/instance/IInstance.sol +50 -45
  234. package/contracts/instance/IInstanceBase.sol +26 -0
  235. package/contracts/instance/IInstanceService.sol +32 -0
  236. package/contracts/instance/Instance.sol +443 -57
  237. package/contracts/instance/InstanceAccessManager.sol +288 -0
  238. package/contracts/instance/InstanceBase.sol +41 -0
  239. package/contracts/instance/InstanceReader.sol +315 -0
  240. package/contracts/instance/InstanceService.sol +252 -0
  241. package/contracts/instance/InstanceServiceManager.sol +57 -0
  242. package/contracts/instance/ObjectManager.sol +101 -0
  243. package/contracts/instance/base/ComponentServiceBase.sol +46 -16
  244. package/contracts/instance/base/IInstanceBase.sol +3 -2
  245. package/contracts/instance/base/IKeyValueStore.sol +13 -14
  246. package/contracts/instance/base/ILifecycle.sol +3 -3
  247. package/contracts/instance/base/KeyValueStore.sol +49 -38
  248. package/contracts/instance/base/Lifecycle.sol +1 -1
  249. package/contracts/instance/module/IAccess.sol +38 -0
  250. package/contracts/instance/module/IBundle.sol +20 -0
  251. package/contracts/instance/module/IDistribution.sol +39 -0
  252. package/contracts/instance/module/IPolicy.sol +45 -0
  253. package/contracts/instance/module/IRisk.sol +11 -0
  254. package/contracts/instance/module/ISetup.sol +46 -0
  255. package/contracts/instance/module/ITreasury.sol +23 -0
  256. package/contracts/instance/service/ComponentOwnerService.sol +232 -72
  257. package/contracts/instance/service/DistributionService.sol +78 -19
  258. package/contracts/instance/service/DistributionServiceManager.sol +54 -0
  259. package/contracts/instance/service/IComponentOwnerService.sol +1 -3
  260. package/contracts/instance/service/IDistributionService.sol +1 -1
  261. package/contracts/instance/service/IPolicyService.sol +87 -0
  262. package/contracts/instance/service/IPoolService.sol +17 -3
  263. package/contracts/instance/service/IProductService.sol +9 -76
  264. package/contracts/instance/service/PolicyService.sol +513 -0
  265. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  266. package/contracts/instance/service/PoolService.sol +219 -51
  267. package/contracts/instance/service/PoolServiceManager.sol +54 -0
  268. package/contracts/instance/service/ProductService.sol +100 -436
  269. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  270. package/contracts/registry/ChainNft.sol +80 -37
  271. package/contracts/registry/IRegistry.sol +49 -25
  272. package/contracts/registry/IRegistryService.sol +50 -0
  273. package/contracts/registry/ITransferInterceptor.sol +6 -0
  274. package/contracts/registry/Registry.sol +336 -270
  275. package/contracts/registry/RegistryService.sol +358 -0
  276. package/contracts/registry/RegistryServiceManager.sol +80 -0
  277. package/contracts/registry/TokenRegistry.sol +111 -0
  278. package/contracts/shared/ContractDeployerLib.sol +72 -0
  279. package/contracts/shared/ERC165.sol +6 -2
  280. package/contracts/shared/INftOwnable.sol +22 -0
  281. package/contracts/shared/IRegisterable.sol +8 -15
  282. package/contracts/{instance/base → shared}/IService.sol +3 -3
  283. package/contracts/shared/IVersionable.sol +55 -11
  284. package/contracts/shared/NftOwnable.sol +134 -0
  285. package/contracts/shared/ProxyManager.sol +94 -0
  286. package/contracts/shared/Registerable.sol +63 -59
  287. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  288. package/contracts/shared/Service.sol +55 -0
  289. package/contracts/shared/TokenHandler.sol +27 -0
  290. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  291. package/contracts/shared/Versionable.sol +113 -55
  292. package/contracts/test/TestFee.sol +2 -2
  293. package/contracts/test/TestRegisterable.sol +5 -6
  294. package/contracts/test/TestRoleId.sol +1 -1
  295. package/contracts/test/TestService.sol +5 -13
  296. package/contracts/types/DistributorType.sol +55 -0
  297. package/contracts/types/Fee.sol +3 -3
  298. package/contracts/types/Key32.sol +8 -3
  299. package/contracts/types/NftIdSet.sol +26 -24
  300. package/contracts/types/NumberId.sol +52 -0
  301. package/contracts/types/ObjectType.sol +35 -14
  302. package/contracts/types/Referral.sol +85 -0
  303. package/contracts/types/RoleId.sol +62 -9
  304. package/contracts/types/StateId.sol +5 -1
  305. package/contracts/types/Timestamp.sol +7 -3
  306. package/contracts/types/UFixed.sol +128 -12
  307. package/contracts/types/Version.sol +13 -1
  308. package/package.json +4 -3
  309. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  310. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  311. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  312. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  313. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  314. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  315. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  316. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  317. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  318. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.json +0 -10
  319. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  320. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  321. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  322. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  323. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  324. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  325. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  326. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  327. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  328. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  329. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  330. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  331. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  332. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  333. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  334. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  335. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  336. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  337. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  338. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  339. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  340. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  341. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  342. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  343. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  344. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  345. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  346. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  347. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  348. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  349. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  350. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  351. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  352. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  353. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  354. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -511
  355. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  356. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  357. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  358. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -511
  359. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  360. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  361. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  362. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  363. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  364. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  365. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  366. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -405
  367. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  368. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -578
  369. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  370. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -575
  371. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  372. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  373. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  374. package/contracts/experiment/statemachine/README.md +0 -112
  375. package/contracts/instance/IInstanceLinked.sol +0 -8
  376. package/contracts/instance/base/InstanceBase.sol +0 -91
  377. package/contracts/instance/base/ModuleBase.sol +0 -57
  378. package/contracts/instance/base/ServiceBase.sol +0 -37
  379. package/contracts/instance/module/access/Access.sol +0 -149
  380. package/contracts/instance/module/access/IAccess.sol +0 -53
  381. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  382. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  383. package/contracts/instance/module/component/ComponentModule.sol +0 -70
  384. package/contracts/instance/module/component/IComponent.sol +0 -28
  385. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  386. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  387. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  388. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  389. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  390. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  391. package/contracts/instance/module/risk/IRisk.sol +0 -26
  392. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  393. package/contracts/instance/module/treasury/ITreasury.sol +0 -82
  394. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  395. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -138
  396. package/contracts/registry/IChainNft.sol +0 -21
  397. package/contracts/registry/IRegistryLinked.sol +0 -8
  398. package/contracts/shared/IOwnable.sol +0 -6
  399. package/contracts/test/TestDistribution.sol +0 -21
  400. package/contracts/test/TestPool.sol +0 -25
  401. package/contracts/test/TestProduct.sol +0 -72
  402. package/contracts/types/ReferralId.sol +0 -48
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,7 +40,18 @@ npm run test-with-gas
21
40
  npm run coverage
22
41
  ```
23
42
 
24
- ### Deployment
43
+ ### Docgen
44
+
45
+ Produce `solidty-docgen` documentation using the command below.
46
+
47
+ ```shell
48
+ hh docgen
49
+ ```
50
+
51
+ The resulting markdown files are written to `docs`
52
+
53
+
54
+ ### Full protocol deployment
25
55
 
26
56
  Install the dependencies before running the script below for the first time.
27
57
 
@@ -51,6 +81,25 @@ Environment variables:
51
81
  - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
52
82
  - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
53
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
+
54
103
 
55
104
  ### Console
56
105
 
@@ -89,7 +138,11 @@ forge test -vvvv --mt test_decimals
89
138
  # provide gas report for a single test
90
139
  forge test --mt test_decimals --gas-report
91
140
 
141
+ # provide code coverage report
92
142
  forge coverage
143
+ forge coverage --report lcov
144
+
145
+
93
146
  ```
94
147
 
95
148
  Chisel session
@@ -201,6 +254,7 @@ sudo apt update
201
254
  sudo apt install python3-pip
202
255
  pip install eth-brownie
203
256
  brownie pm install OpenZeppelin/openzeppelin-contracts@4.9.3
257
+ brownie pm install OpenZeppelin/openzeppelin-contracts@5.0.0
204
258
  ```
205
259
 
206
260
  ```bash
@@ -252,28 +306,178 @@ pool_id = pool.getNftId()
252
306
  product_id = product.getNftId()
253
307
  ```
254
308
 
255
- ## migrate to kv store
256
-
257
- sizes before
258
- | Instance | 23.178 | 1.398 |
259
- | TestInstanceBase | 3.305 | 21.271 |
260
- | TestInstanceModuleAccess | 7.86 | 16.716 |
261
- | TestInstanceModuleBundle | 7.586 | 16.99 |
262
- | TestInstanceModuleCompensation | 3.305 | 21.271 |
263
- | TestInstanceModuleComponent | 5.123 | 19.453 |
264
- | TestInstanceModulePolicy | 6.937 | 17.639 |
265
- | TestInstanceModulePool | 4.809 | 19.767 |
266
- | TestInstanceModuleRisk | 3.305 | 21.271 |
267
- | TestInstanceModuleTreasury | 7.563 | 17.013 |
268
- ---
269
- sizes after
270
- | Instance | 22.727 | 1.849 |
271
- | TestInstanceBase | 3.485 | 21.091 |
272
- | TestInstanceModuleAccess | 8.036 | 16.54 |
273
- | TestInstanceModuleBundle | 8.354 | 16.222 |
274
- | TestInstanceModuleCompensation | 3.485 | 21.091 |
275
- | TestInstanceModuleComponent | 5.482 | 19.094 |
276
- | TestInstanceModulePolicy | 7.502 | 17.074 |
277
- | TestInstanceModulePool | 5.522 | 19.054 |
278
- | TestInstanceModuleRisk | 4.635 | 19.941 |
279
- | TestInstanceModuleTreasury | 8.945 | 15.631 |
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/f93a8e80452dc32f10ebad6b13365e96.json"
3
+ "buildInfo": "../../../build-info/12b2d414fd80c2a411d69b27dfedd792.json"
4
4
  }
@@ -3,10 +3,282 @@
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": "newWallet",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ErrorBaseComponentWalletAddressIsSameAsCurrent",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "oldWallet",
60
+ "type": "address"
61
+ },
62
+ {
63
+ "internalType": "address",
64
+ "name": "newWallet",
65
+ "type": "address"
66
+ },
67
+ {
68
+ "internalType": "uint256",
69
+ "name": "allowance",
70
+ "type": "uint256"
71
+ },
72
+ {
73
+ "internalType": "uint256",
74
+ "name": "balance",
75
+ "type": "uint256"
76
+ }
77
+ ],
78
+ "name": "ErrorBaseComponentWalletAllowanceTooSmall",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "contractAddress",
86
+ "type": "address"
87
+ }
88
+ ],
89
+ "name": "ErrorContractNotRegistered",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "address",
96
+ "name": "account",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "ErrorNotOwner",
101
+ "type": "error"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "internalType": "address",
107
+ "name": "registryAddress",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "name": "ErrorNotRegistry",
112
+ "type": "error"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "address",
118
+ "name": "registryAddress",
119
+ "type": "address"
120
+ }
121
+ ],
122
+ "name": "ErrorRegisterableNotRegistry",
123
+ "type": "error"
124
+ },
125
+ {
126
+ "inputs": [],
127
+ "name": "ErrorRegistryAddressZero",
128
+ "type": "error"
129
+ },
130
+ {
131
+ "inputs": [
132
+ {
133
+ "internalType": "address",
134
+ "name": "registry",
135
+ "type": "address"
136
+ }
137
+ ],
138
+ "name": "ErrorRegistryAlreadyInitialized",
139
+ "type": "error"
140
+ },
6
141
  {
7
142
  "inputs": [],
8
- "name": "getData",
143
+ "name": "ErrorRegistryNotInitialized",
144
+ "type": "error"
145
+ },
146
+ {
147
+ "inputs": [],
148
+ "name": "FailedInnerCall",
149
+ "type": "error"
150
+ },
151
+ {
152
+ "inputs": [],
153
+ "name": "InvalidInitialization",
154
+ "type": "error"
155
+ },
156
+ {
157
+ "inputs": [],
158
+ "name": "NotInitializing",
159
+ "type": "error"
160
+ },
161
+ {
162
+ "inputs": [
163
+ {
164
+ "internalType": "address",
165
+ "name": "token",
166
+ "type": "address"
167
+ }
168
+ ],
169
+ "name": "SafeERC20FailedOperation",
170
+ "type": "error"
171
+ },
172
+ {
173
+ "anonymous": false,
174
+ "inputs": [
175
+ {
176
+ "indexed": false,
177
+ "internalType": "uint64",
178
+ "name": "version",
179
+ "type": "uint64"
180
+ }
181
+ ],
182
+ "name": "Initialized",
183
+ "type": "event"
184
+ },
185
+ {
186
+ "anonymous": false,
187
+ "inputs": [
188
+ {
189
+ "indexed": false,
190
+ "internalType": "address",
191
+ "name": "newWallet",
192
+ "type": "address"
193
+ }
194
+ ],
195
+ "name": "LogBaseComponentWalletAddressChanged",
196
+ "type": "event"
197
+ },
198
+ {
199
+ "anonymous": false,
200
+ "inputs": [
201
+ {
202
+ "indexed": false,
203
+ "internalType": "address",
204
+ "name": "from",
205
+ "type": "address"
206
+ },
207
+ {
208
+ "indexed": false,
209
+ "internalType": "address",
210
+ "name": "to",
211
+ "type": "address"
212
+ },
213
+ {
214
+ "indexed": false,
215
+ "internalType": "uint256",
216
+ "name": "amount",
217
+ "type": "uint256"
218
+ }
219
+ ],
220
+ "name": "LogBaseComponentWalletTokensTransferred",
221
+ "type": "event"
222
+ },
223
+ {
224
+ "inputs": [],
225
+ "name": "REGISTERABLE_LOCATION_V1",
9
226
  "outputs": [
227
+ {
228
+ "internalType": "bytes32",
229
+ "name": "",
230
+ "type": "bytes32"
231
+ }
232
+ ],
233
+ "stateMutability": "view",
234
+ "type": "function"
235
+ },
236
+ {
237
+ "inputs": [],
238
+ "name": "getInitialInfo",
239
+ "outputs": [
240
+ {
241
+ "components": [
242
+ {
243
+ "internalType": "NftId",
244
+ "name": "nftId",
245
+ "type": "uint96"
246
+ },
247
+ {
248
+ "internalType": "NftId",
249
+ "name": "parentNftId",
250
+ "type": "uint96"
251
+ },
252
+ {
253
+ "internalType": "ObjectType",
254
+ "name": "objectType",
255
+ "type": "uint8"
256
+ },
257
+ {
258
+ "internalType": "bool",
259
+ "name": "isInterceptor",
260
+ "type": "bool"
261
+ },
262
+ {
263
+ "internalType": "address",
264
+ "name": "objectAddress",
265
+ "type": "address"
266
+ },
267
+ {
268
+ "internalType": "address",
269
+ "name": "initialOwner",
270
+ "type": "address"
271
+ },
272
+ {
273
+ "internalType": "bytes",
274
+ "name": "data",
275
+ "type": "bytes"
276
+ }
277
+ ],
278
+ "internalType": "struct IRegistry.ObjectInfo",
279
+ "name": "",
280
+ "type": "tuple"
281
+ },
10
282
  {
11
283
  "internalType": "bytes",
12
284
  "name": "data",
@@ -35,7 +307,7 @@
35
307
  "outputs": [
36
308
  {
37
309
  "internalType": "NftId",
38
- "name": "nftId",
310
+ "name": "",
39
311
  "type": "uint96"
40
312
  }
41
313
  ],
@@ -48,7 +320,7 @@
48
320
  "outputs": [
49
321
  {
50
322
  "internalType": "address",
51
- "name": "owner",
323
+ "name": "",
52
324
  "type": "address"
53
325
  }
54
326
  ],
@@ -57,11 +329,11 @@
57
329
  },
58
330
  {
59
331
  "inputs": [],
60
- "name": "getParentNftId",
332
+ "name": "getProductNftId",
61
333
  "outputs": [
62
334
  {
63
335
  "internalType": "NftId",
64
- "name": "nftId",
336
+ "name": "productNftId",
65
337
  "type": "uint96"
66
338
  }
67
339
  ],
@@ -74,7 +346,7 @@
74
346
  "outputs": [
75
347
  {
76
348
  "internalType": "contract IRegistry",
77
- "name": "registry",
349
+ "name": "",
78
350
  "type": "address"
79
351
  }
80
352
  ],
@@ -94,19 +366,6 @@
94
366
  "stateMutability": "view",
95
367
  "type": "function"
96
368
  },
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
369
  {
111
370
  "inputs": [],
112
371
  "name": "getWallet",
@@ -122,21 +381,41 @@
122
381
  },
123
382
  {
124
383
  "inputs": [],
125
- "name": "lock",
384
+ "name": "linkToRegisteredNftId",
126
385
  "outputs": [],
127
386
  "stateMutability": "nonpayable",
128
387
  "type": "function"
129
388
  },
130
389
  {
131
390
  "inputs": [],
132
- "name": "register",
133
- "outputs": [
391
+ "name": "lock",
392
+ "outputs": [],
393
+ "stateMutability": "nonpayable",
394
+ "type": "function"
395
+ },
396
+ {
397
+ "inputs": [
134
398
  {
135
399
  "internalType": "NftId",
136
- "name": "componentId",
400
+ "name": "productNftId",
137
401
  "type": "uint96"
138
402
  }
139
403
  ],
404
+ "name": "setProductNftId",
405
+ "outputs": [],
406
+ "stateMutability": "nonpayable",
407
+ "type": "function"
408
+ },
409
+ {
410
+ "inputs": [
411
+ {
412
+ "internalType": "address",
413
+ "name": "newWallet",
414
+ "type": "address"
415
+ }
416
+ ],
417
+ "name": "setWallet",
418
+ "outputs": [],
140
419
  "stateMutability": "nonpayable",
141
420
  "type": "function"
142
421
  },
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/f93a8e80452dc32f10ebad6b13365e96.json"
3
+ "buildInfo": "../../../build-info/12b2d414fd80c2a411d69b27dfedd792.json"
4
4
  }