@etherisc/gif-next 0.0.2-7631288 → 0.0.2-7878646-744

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (344) hide show
  1. package/README.md +293 -1
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +4 -0
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +301 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +557 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +254 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +177 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +308 -0
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +207 -0
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +4 -0
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +716 -0
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +4 -0
  17. package/artifacts/contracts/components/Product.sol/Product.json +614 -0
  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 +4 -0
  25. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +105 -0
  26. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +4 -0
  27. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +105 -0
  28. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +4 -0
  29. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +128 -0
  30. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +4 -0
  31. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +42 -0
  32. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +4 -0
  33. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +76 -0
  34. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +4 -0
  35. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +89 -0
  36. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +4 -0
  37. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +128 -0
  38. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +4 -0
  39. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +37 -0
  40. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +4 -0
  41. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +50 -0
  42. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +4 -0
  43. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +63 -0
  44. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +4 -0
  45. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +59 -0
  46. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +4 -0
  47. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +124 -0
  48. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +4 -0
  49. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +74 -0
  50. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +4 -0
  51. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +124 -0
  52. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +4 -0
  53. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +207 -0
  54. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +4 -0
  55. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +10 -0
  56. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +4 -0
  57. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +10 -0
  58. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +4 -0
  59. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1940 -0
  60. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +4 -0
  61. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +24 -0
  62. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +4 -0
  63. package/artifacts/contracts/instance/Instance.sol/Instance.json +2334 -0
  64. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +481 -0
  66. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  67. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
  68. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +560 -0
  70. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.json +115 -0
  72. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/IService.sol/IService.json +421 -0
  74. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  75. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +544 -0
  76. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  77. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +710 -0
  78. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  79. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  80. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +4 -0
  81. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.json +10 -0
  82. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
  83. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +468 -0
  84. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +4 -0
  85. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +297 -0
  86. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +4 -0
  87. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.json +10 -0
  88. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +4 -0
  89. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +297 -0
  90. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +4 -0
  91. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +117 -0
  92. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +4 -0
  93. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +10 -0
  94. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +4 -0
  95. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +117 -0
  96. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
  97. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
  98. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
  99. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.json +10 -0
  100. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
  101. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +10 -0
  102. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +4 -0
  103. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.json +10 -0
  104. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +271 -0
  106. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +4 -0
  107. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +271 -0
  108. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +10 -0
  110. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +4 -0
  111. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +164 -0
  112. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +4 -0
  113. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +164 -0
  114. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +4 -0
  115. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.json +10 -0
  116. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +4 -0
  117. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +113 -0
  118. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +4 -0
  119. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +131 -0
  120. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +4 -0
  121. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +10 -0
  122. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +4 -0
  123. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +638 -0
  124. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  125. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +76 -0
  126. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +4 -0
  127. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +638 -0
  128. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +4 -0
  129. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +827 -0
  130. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  131. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +630 -0
  132. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +4 -0
  133. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +466 -0
  134. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  135. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
  136. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +4 -0
  137. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +561 -0
  138. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +4 -0
  139. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +751 -0
  140. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +4 -0
  141. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +753 -0
  142. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +4 -0
  143. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +1068 -0
  144. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +4 -0
  145. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +726 -0
  146. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +4 -0
  147. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +457 -0
  148. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +4 -0
  149. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +444 -0
  150. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  151. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +872 -0
  152. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  153. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  154. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +4 -0
  155. package/artifacts/contracts/registry/Registry.sol/Registry.json +713 -0
  156. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  157. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1245 -0
  158. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +496 -0
  160. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  161. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  162. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  163. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
  164. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  165. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  166. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  167. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +201 -0
  168. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +205 -0
  170. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  171. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  172. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  173. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  174. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  175. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +274 -0
  176. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  177. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  178. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  179. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +228 -0
  180. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
  181. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +557 -0
  182. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  183. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  184. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +4 -0
  185. package/artifacts/contracts/test/TestPool.sol/TestPool.json +716 -0
  186. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +4 -0
  187. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +744 -0
  188. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  189. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +305 -0
  190. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  191. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +116 -0
  192. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  193. package/artifacts/contracts/test/TestService.sol/TestService.json +584 -0
  194. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  195. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +376 -0
  196. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  197. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  198. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  199. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +270 -0
  200. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  201. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  202. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  203. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  204. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  205. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +174 -0
  206. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +4 -0
  207. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +10 -0
  208. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  209. package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
  210. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  211. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +111 -0
  212. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +4 -0
  213. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +153 -0
  214. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  215. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +10 -0
  216. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  217. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +92 -0
  218. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
  219. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
  220. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  221. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  222. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  223. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -0
  224. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +4 -0
  225. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +92 -0
  226. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +4 -0
  227. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +236 -0
  228. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  229. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  230. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  231. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  232. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  233. package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
  234. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  235. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +30 -0
  236. package/contracts/components/BaseComponent.sol +79 -0
  237. package/contracts/components/Distribution.sol +155 -0
  238. package/contracts/components/IBaseComponent.sol +19 -0
  239. package/contracts/components/IDistributionComponent.sol +46 -0
  240. package/contracts/components/IPoolComponent.sol +64 -0
  241. package/contracts/components/IProductComponent.sol +37 -0
  242. package/contracts/components/Pool.sol +246 -0
  243. package/contracts/components/Product.sol +299 -0
  244. package/contracts/experiment/cloning/Cloner.sol +47 -0
  245. package/contracts/experiment/errors/Require.sol +38 -0
  246. package/contracts/experiment/errors/Revert.sol +44 -0
  247. package/contracts/experiment/inheritance/A.sol +53 -0
  248. package/contracts/experiment/inheritance/B.sol +28 -0
  249. package/contracts/experiment/inheritance/C.sol +34 -0
  250. package/contracts/experiment/inheritance/IA.sol +13 -0
  251. package/contracts/experiment/inheritance/IB.sol +10 -0
  252. package/contracts/experiment/inheritance/IC.sol +12 -0
  253. package/contracts/experiment/statemachine/Dummy.sol +27 -0
  254. package/contracts/experiment/statemachine/ISM.sol +25 -0
  255. package/contracts/experiment/statemachine/SM.sol +57 -0
  256. package/contracts/experiment/statemachine/SimpleStateMachine.sol +31 -0
  257. package/contracts/experiment/types/TypeA.sol +47 -0
  258. package/contracts/experiment/types/TypeB.sol +29 -0
  259. package/contracts/instance/IInstance.sol +52 -0
  260. package/contracts/instance/IInstanceLinked.sol +8 -0
  261. package/contracts/instance/Instance.sol +83 -0
  262. package/contracts/instance/base/ComponentServiceBase.sol +49 -0
  263. package/contracts/instance/base/IInstanceBase.sol +23 -0
  264. package/contracts/instance/base/IKeyValueStore.sol +50 -0
  265. package/contracts/instance/base/ILifecycle.sol +30 -0
  266. package/contracts/instance/base/IService.sol +15 -0
  267. package/contracts/instance/base/InstanceBase.sol +89 -0
  268. package/contracts/instance/base/KeyValueStore.sol +161 -0
  269. package/contracts/instance/base/Lifecycle.sol +100 -0
  270. package/contracts/instance/base/ModuleBase.sol +57 -0
  271. package/contracts/instance/base/ServiceBase.sol +44 -0
  272. package/contracts/instance/module/bundle/BundleModule.sol +134 -0
  273. package/contracts/instance/module/bundle/IBundle.sol +53 -0
  274. package/contracts/instance/module/component/ComponentModule.sol +71 -0
  275. package/contracts/instance/module/component/IComponent.sol +28 -0
  276. package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
  277. package/contracts/instance/module/distribution/IDistribution.sol +10 -0
  278. package/contracts/instance/module/policy/IPolicy.sol +63 -0
  279. package/contracts/instance/module/policy/PolicyModule.sol +91 -0
  280. package/contracts/instance/module/pool/IPoolModule.sol +41 -0
  281. package/contracts/instance/module/pool/PoolModule.sol +95 -0
  282. package/contracts/instance/module/risk/IRisk.sol +26 -0
  283. package/contracts/instance/module/risk/RiskModule.sol +62 -0
  284. package/contracts/instance/module/treasury/ITreasury.sol +84 -0
  285. package/contracts/instance/module/treasury/TokenHandler.sol +48 -0
  286. package/contracts/instance/module/treasury/TreasuryModule.sol +131 -0
  287. package/contracts/instance/service/ComponentOwnerService.sol +315 -0
  288. package/contracts/instance/service/DistributionService.sol +54 -0
  289. package/contracts/instance/service/IComponentOwnerService.sol +20 -0
  290. package/contracts/instance/service/IDistributionService.sol +12 -0
  291. package/contracts/instance/service/IPoolService.sol +37 -0
  292. package/contracts/instance/service/IProductService.sol +107 -0
  293. package/contracts/instance/service/PoolService.sol +149 -0
  294. package/contracts/instance/service/ProductService.sol +510 -0
  295. package/contracts/registry/ChainNft.sol +187 -0
  296. package/contracts/registry/IChainNft.sol +22 -0
  297. package/contracts/registry/IRegistry.sol +57 -0
  298. package/contracts/registry/IRegistryService.sol +35 -0
  299. package/contracts/registry/ITransferInterceptor.sol +6 -0
  300. package/contracts/registry/Registry.sol +426 -0
  301. package/contracts/registry/RegistryService.sol +441 -0
  302. package/contracts/registry/RegistryServiceManager.sol +64 -0
  303. package/contracts/shared/ContractDeployerLib.sol +72 -0
  304. package/contracts/shared/ERC165.sol +21 -0
  305. package/contracts/shared/INftOwnable.sol +22 -0
  306. package/contracts/shared/IRegisterable.sol +17 -0
  307. package/contracts/shared/IVersionable.sol +96 -0
  308. package/contracts/shared/NftOwnable.sol +136 -0
  309. package/contracts/shared/ProxyManager.sol +94 -0
  310. package/contracts/shared/Registerable.sol +89 -0
  311. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  312. package/contracts/shared/Versionable.sol +147 -0
  313. package/contracts/test/TestDistribution.sol +22 -0
  314. package/contracts/test/TestFee.sol +25 -0
  315. package/contracts/test/TestPool.sol +27 -0
  316. package/contracts/test/TestProduct.sol +74 -0
  317. package/contracts/test/TestRegisterable.sol +18 -0
  318. package/contracts/test/TestRoleId.sol +14 -0
  319. package/contracts/test/TestService.sol +26 -0
  320. package/contracts/{Dip.sol → test/TestToken.sol} +5 -5
  321. package/contracts/test/TestVersion.sol +44 -0
  322. package/contracts/test/TestVersionable.sol +17 -0
  323. package/contracts/test/Usdc.sol +26 -0
  324. package/contracts/types/AddressSet.sol +58 -0
  325. package/contracts/types/Blocknumber.sol +118 -0
  326. package/contracts/types/ChainId.sol +38 -0
  327. package/contracts/types/Fee.sol +56 -0
  328. package/contracts/types/Key32.sol +45 -0
  329. package/contracts/types/NftId.sol +72 -0
  330. package/contracts/types/NftIdSet.sol +60 -0
  331. package/contracts/types/ObjectType.sol +131 -0
  332. package/contracts/types/ReferralId.sol +48 -0
  333. package/contracts/types/RiskId.sol +43 -0
  334. package/contracts/types/RoleId.sol +45 -0
  335. package/contracts/types/StateId.sol +101 -0
  336. package/contracts/types/Timestamp.sol +123 -0
  337. package/contracts/types/UFixed.sol +325 -0
  338. package/contracts/types/Version.sol +104 -0
  339. package/package.json +26 -10
  340. package/artifacts/contracts/Dip.sol/DIP.dbg.json +0 -4
  341. package/artifacts/contracts/Dip.sol/DIP.json +0 -338
  342. package/artifacts/contracts/Lock.sol/Lock.dbg.json +0 -4
  343. package/artifacts/contracts/Lock.sol/Lock.json +0 -74
  344. package/contracts/Lock.sol +0 -34
package/README.md CHANGED
@@ -1,8 +1,35 @@
1
1
  # gif-next (Generic Insurance Framework next version)
2
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
+
21
+
22
+ ## Submodules checkout
23
+
24
+ This repository uses submodules. To checkout or update to the latest submodules, run the following command after updating to any revision (or checking out the repository)
25
+
26
+ ```shell
27
+ git submodule update --recursive
28
+ ```
29
+
3
30
  ## Hardhat
4
31
 
5
- ### Commands
32
+ ### NPM Commands
6
33
 
7
34
  ```shell
8
35
  npm run build
@@ -13,6 +40,59 @@ npm run test-with-gas
13
40
  npm run coverage
14
41
  ```
15
42
 
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
+ ### Deployment
55
+
56
+ Install the dependencies before running the script below for the first time.
57
+
58
+ ```bash
59
+ npm install
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
74
+ hh run --network <networkname> scripts/deploy_all.ts
75
+ ```
76
+
77
+ Environment variables:
78
+
79
+ - `SKIP_VERIFICATION` set to `true` to skip etherscan verification (required for ganacht and anvil)
80
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
81
+ - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
82
+ - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
83
+
84
+
85
+ ### Console
86
+
87
+ ```
88
+ hh console --network <networkname>
89
+
90
+ me = hre.ethers.Wallet.fromPhrase('...')
91
+ provider = hre.ethers.provider
92
+ await provider.getBalance(me)
93
+ ```
94
+
95
+
16
96
  ### Documentation
17
97
 
18
98
  https://hardhat.org/hardhat-runner/docs/guides/compile-contracts
@@ -24,10 +104,222 @@ https://hardhat.org/hardhat-runner/docs/guides/compile-contracts
24
104
  ```shell
25
105
  forge build
26
106
 
107
+ # contract sizes
108
+ forge build --sizes | grep Instance
109
+
27
110
  forge test
111
+
112
+ # run single test case
113
+ forge test --mt test_decimals
114
+
115
+ # run single test case with substantial logginglogging
116
+ # to include logs as well use -vvvvv
117
+ forge test -vvvv --mt test_decimals
118
+
119
+ # provide gas report for a single test
120
+ forge test --mt test_decimals --gas-report
121
+
122
+ forge coverage
123
+ ```
124
+
125
+ Chisel session
126
+ ```typescript
127
+ import "./contracts/components/Component.sol";
128
+ import "./contracts/components/IPool.sol";
129
+ import "./contracts/components/IProduct.sol";
130
+ import "./contracts/components/Pool.sol";
131
+ import "./contracts/components/Product.sol";
132
+ import "./contracts/instance/access/Access.sol";
133
+ import "./contracts/instance/access/IAccess.sol";
134
+ import "./contracts/instance/component/ComponentModule.sol";
135
+ import "./contracts/instance/component/IComponent.sol";
136
+ import "./contracts/instance/IInstance.sol";
137
+ import "./contracts/instance/policy/IPolicy.sol";
138
+ import "./contracts/instance/policy/PolicyModule.sol";
139
+ import "./contracts/instance/product/IProductService.sol";
140
+ import "./contracts/instance/product/ProductService.sol";
141
+ import "./contracts/registry/IRegistry.sol";
142
+
143
+ import {Instance} from "./contracts/instance/Instance.sol";
144
+ import {Registry} from "./contracts/registry/Registry.sol";
145
+ import {DeployAll} from "./scripts/DeployAll.s.sol";
146
+ import {TestPool} from "./test_forge/mock/TestPool.sol";
147
+ import {TestProduct} from "./test_forge/mock/TestProduct.sol";
148
+
149
+ string memory instanceOwnerName = "instanceOwner";
150
+ address instanceOwner = vm.addr(uint256(keccak256(abi.encodePacked(instanceOwnerName))));
151
+
152
+ string memory productOwnerName = "productOwner";
153
+ address productOwner = vm.addr(uint256(keccak256(abi.encodePacked(productOwnerName))));
154
+
155
+ string memory poolOwnerName = "poolOwner";
156
+ address poolOwner = vm.addr(uint256(keccak256(abi.encodePacked(poolOwnerName))));
157
+
158
+ string memory customerName = "customer";
159
+ address customer = vm.addr(uint256(keccak256(abi.encodePacked(customerName))));
160
+
161
+ DeployAll deployer = new DeployAll();
162
+ (
163
+ Registry registry,
164
+ Instance instance,
165
+ TestProduct product,
166
+ TestPool pool
167
+ ) = deployer.run(
168
+ instanceOwner,
169
+ productOwner,
170
+ poolOwner);
171
+
172
+ ProductService ps = ProductService(address(registry));
173
+
174
+ uint256 bundleNftId = 99;
175
+ uint256 sumInsuredAmount = 1000*10**6;
176
+ uint256 premiumAmount = 110*10**6;
177
+ uint256 lifetime =365*24*3600;
178
+ uint256 policyNftId = ps.createApplicationForBundle(customer, bundleNftId, sumInsuredAmount, premiumAmount, lifetime);
179
+
180
+ ```
181
+ ### Library Linking
182
+
183
+ https://ethereum.stackexchange.com/questions/153411/does-foundry-support-dynamical-library-linking-in-solidity
184
+
185
+ ```toml
186
+ # foundry.toml
187
+
188
+ [profile.default]
189
+ # expected format(example below): libraries = ["<path>:<lib name>:<address>"]
190
+ libraries = ["src/libraries/MyLibrary.sol:MyLibrary:0x..."]
28
191
  ```
29
192
 
30
193
  ### Documentation
31
194
 
32
195
  https://book.getfoundry.sh/reference/
33
196
 
197
+ ## Style Guide
198
+
199
+ Solidity code is to be written according to the [Solidity Style Guide](https://docs.soliditylang.org/en/latest/style-guide.html).
200
+
201
+ Documentation of the code should be written inline using [NatSpec](https://docs.soliditylang.org/en/latest/natspec-format.html).
202
+
203
+ ### Naming conventions
204
+
205
+ Additionally, we use the following naming conventions:
206
+
207
+ - Function arguments and return types: If using custom data types, make the name include the type by appending the Type to the argument name, e.g. `function getInfo(NftId bundleNftId)` instead of `function getInfo(NftId bundleId)`. Background: Custom data types are lost when using the ABI or Typescript binding classes (e.g. instead of `NftID` a `uint96` is used), so the type needs to be included in the name to make it clear what the argument is without having to look at the documentation or checking the solidity source code.
208
+ - When naming a field or an attribute `id` and the context is not clear, call it `nftId` instead so its clear what type if id it is as there will be multiple ids for different kind of objects. Example: if you the function has a bundle nft id and a policy nft id as arguments, call them `bundleNftId` and `policyNftId` instead of `id` and `policyId`. In case of doubt, be a bit more verbose for the sake of clarity.
209
+ - When naming things, remember that the code will likely be used in Javascript/Typescript as well, so avoid names that are reserved in Javascript/Typescript. A list of reserved words in Javascript can be found [here](https://www.w3schools.com/js/js_reserved.asp) and a list of reserved words in Typescript can be found [here](https://www.tektutorialshub.com/typescript/identifiers-keywords-in-typescript/).
210
+
211
+ ### Automatic code formatting
212
+
213
+ We use prettier and the solidity plugin to format the code automatically.
214
+ The plugin is configured to use the style guide mentioned above.
215
+ To execute format checks run `npm run styleCheck`.
216
+ To execute formatting run `npm run styleFix`.
217
+
218
+ ### Linting
219
+
220
+ We use solhint to lint the code.
221
+ To execute linting run `npm run lint`.
222
+
223
+
224
+ ### Adding Brownie (Legacy)
225
+
226
+ python3 is already installed
227
+
228
+ ```bash
229
+ npm install -g ganache
230
+ sudo apt update
231
+ sudo apt install python3-pip
232
+ pip install eth-brownie
233
+ brownie pm install OpenZeppelin/openzeppelin-contracts@4.9.3
234
+ brownie pm install OpenZeppelin/openzeppelin-contracts@5.0.0
235
+ ```
236
+
237
+ ```bash
238
+ brownie compile --all
239
+ brownie console
240
+ ```
241
+
242
+ ```python
243
+ registry_owner = accounts[0]
244
+ instance_owner = accounts[1]
245
+ product_owner = accounts[2]
246
+
247
+ # deploy libs and helper contracts
248
+ nft_id_lib = NftIdLib.deploy({'from': registry_owner})
249
+ ufixed_math_lib = UFixedMathLib.deploy({'from': registry_owner})
250
+ test_fee = TestFee.deploy({'from': registry_owner})
251
+
252
+ # deploy registry and a token
253
+ registry = Registry.deploy({'from': registry_owner})
254
+ nft = ChainNft.deploy(registry, {'from': registry_owner})
255
+ registry.initialize(nft, {'from': registry_owner})
256
+ token = TestUsdc.deploy({'from': registry_owner})
257
+
258
+ # deploy services
259
+ component_owner_service = ComponentOwnerService.deploy(registry, {'from': registry_owner})
260
+ product_service = ProductService.deploy(registry, {'from': registry_owner})
261
+
262
+ # deploy an instance
263
+ instance = Instance.deploy(registry, component_owner_service, product_service, {'from': instance_owner})
264
+
265
+ # deploy product
266
+ pool = TestPool.deploy(registry, instance, token, {'from': product_owner})
267
+ policy_fee = test_fee.createFee(1, -1, 0)
268
+ product = TestProduct.deploy(registry, instance, token, pool, policy_fee, {'from': product_owner})
269
+
270
+ # grant roles
271
+ pool_owner_role = instance.getRoleForName("PoolOwner")
272
+ product_owner_role = instance.getRoleForName("ProductOwner")
273
+ instance.grantRole(pool_owner_role, product_owner, {'from': instance_owner})
274
+ instance.grantRole(product_owner_role, product_owner, {'from': instance_owner})
275
+
276
+ # register objects
277
+ instance.register()
278
+ component_owner_service.register(pool, {'from': product_owner})
279
+ component_owner_service.register(product, {'from': product_owner})
280
+
281
+ instance_id = instance.getNftId()
282
+ pool_id = pool.getNftId()
283
+ product_id = product.getNftId()
284
+ ```
285
+
286
+ ## Registry and Services
287
+
288
+ ### Principles
289
+
290
+ - 1 service per object type and major version
291
+ - registry service guards write access to registry
292
+ - all other objects registered via registry service
293
+ - root object for the complete tree is the protocol object
294
+ - under the root object a single registry object is registered (= global registry/ethereum mainnet)
295
+
296
+
297
+ ### Service Responsibilities
298
+
299
+ Registry Service
300
+
301
+ - deployed and registered during bootstrapping of registry
302
+ - used to register tokens and other services by registry owner
303
+ - an object may only be registered by the service designated by the type of the object
304
+ - to register an object the parent object needs already be registered
305
+ - the type of the object to be registered needs to match a valid child type/parent type combination
306
+
307
+ Instance Service
308
+
309
+ - deploys master instance during its own bootstrapping (if allowed by contract size)
310
+ - registered via registry service by registry owner
311
+ - registeres master instance during its own registration by regsitry owner
312
+ - deploys and registeres new instances (= instance factory) by instance owner (instance owner is a permissionless role, anybody may creates a new instance)
313
+ - provides upgrade functionality to instance owners
314
+
315
+ Product Service
316
+
317
+ - registered via registry service by registry owner
318
+ - registers products for registered instances via registry service by product owner (product owner role is permissend by the product's instance)
319
+ - registers applications/policies for registered products via registry service
320
+
321
+ Distribution Service
322
+
323
+ - registered via registry service by registry owner
324
+ - registers distribution components for registered products via registry service by distribution owner (distribution owner role is permissend by the product's instance)
325
+ - registers distributors for registered distribution components via registry service
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/c5de1cd84fb0ad7c62806910154fca8c.json"
4
+ }
@@ -0,0 +1,301 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "BaseComponent",
4
+ "sourceName": "contracts/components/BaseComponent.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "registry",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "NftId",
15
+ "name": "nftId",
16
+ "type": "uint96"
17
+ }
18
+ ],
19
+ "name": "ErrorAlreadyLinked",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "address",
26
+ "name": "contractAddress",
27
+ "type": "address"
28
+ }
29
+ ],
30
+ "name": "ErrorContractNotRegistered",
31
+ "type": "error"
32
+ },
33
+ {
34
+ "inputs": [
35
+ {
36
+ "internalType": "address",
37
+ "name": "account",
38
+ "type": "address"
39
+ }
40
+ ],
41
+ "name": "ErrorNotOwner",
42
+ "type": "error"
43
+ },
44
+ {
45
+ "inputs": [
46
+ {
47
+ "internalType": "address",
48
+ "name": "registryAddress",
49
+ "type": "address"
50
+ }
51
+ ],
52
+ "name": "ErrorNotRegistry",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "inputs": [
57
+ {
58
+ "internalType": "address",
59
+ "name": "registryAddress",
60
+ "type": "address"
61
+ }
62
+ ],
63
+ "name": "ErrorRegisterableNotRegistry",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [],
68
+ "name": "ErrorRegistryAddressZero",
69
+ "type": "error"
70
+ },
71
+ {
72
+ "inputs": [
73
+ {
74
+ "internalType": "address",
75
+ "name": "registry",
76
+ "type": "address"
77
+ }
78
+ ],
79
+ "name": "ErrorRegistryAlreadyInitialized",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [],
84
+ "name": "ErrorRegistryNotInitialized",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [],
89
+ "name": "InvalidInitialization",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "NotInitializing",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "anonymous": false,
99
+ "inputs": [
100
+ {
101
+ "indexed": false,
102
+ "internalType": "uint64",
103
+ "name": "version",
104
+ "type": "uint64"
105
+ }
106
+ ],
107
+ "name": "Initialized",
108
+ "type": "event"
109
+ },
110
+ {
111
+ "inputs": [],
112
+ "name": "REGISTERABLE_LOCATION_V1",
113
+ "outputs": [
114
+ {
115
+ "internalType": "bytes32",
116
+ "name": "",
117
+ "type": "bytes32"
118
+ }
119
+ ],
120
+ "stateMutability": "view",
121
+ "type": "function"
122
+ },
123
+ {
124
+ "inputs": [],
125
+ "name": "getInitialInfo",
126
+ "outputs": [
127
+ {
128
+ "components": [
129
+ {
130
+ "internalType": "NftId",
131
+ "name": "nftId",
132
+ "type": "uint96"
133
+ },
134
+ {
135
+ "internalType": "NftId",
136
+ "name": "parentNftId",
137
+ "type": "uint96"
138
+ },
139
+ {
140
+ "internalType": "ObjectType",
141
+ "name": "objectType",
142
+ "type": "uint8"
143
+ },
144
+ {
145
+ "internalType": "bool",
146
+ "name": "isInterceptor",
147
+ "type": "bool"
148
+ },
149
+ {
150
+ "internalType": "address",
151
+ "name": "objectAddress",
152
+ "type": "address"
153
+ },
154
+ {
155
+ "internalType": "address",
156
+ "name": "initialOwner",
157
+ "type": "address"
158
+ },
159
+ {
160
+ "internalType": "bytes",
161
+ "name": "data",
162
+ "type": "bytes"
163
+ }
164
+ ],
165
+ "internalType": "struct IRegistry.ObjectInfo",
166
+ "name": "",
167
+ "type": "tuple"
168
+ },
169
+ {
170
+ "internalType": "bytes",
171
+ "name": "data",
172
+ "type": "bytes"
173
+ }
174
+ ],
175
+ "stateMutability": "view",
176
+ "type": "function"
177
+ },
178
+ {
179
+ "inputs": [],
180
+ "name": "getInstance",
181
+ "outputs": [
182
+ {
183
+ "internalType": "contract IInstance",
184
+ "name": "instance",
185
+ "type": "address"
186
+ }
187
+ ],
188
+ "stateMutability": "view",
189
+ "type": "function"
190
+ },
191
+ {
192
+ "inputs": [],
193
+ "name": "getNftId",
194
+ "outputs": [
195
+ {
196
+ "internalType": "NftId",
197
+ "name": "",
198
+ "type": "uint96"
199
+ }
200
+ ],
201
+ "stateMutability": "view",
202
+ "type": "function"
203
+ },
204
+ {
205
+ "inputs": [],
206
+ "name": "getOwner",
207
+ "outputs": [
208
+ {
209
+ "internalType": "address",
210
+ "name": "",
211
+ "type": "address"
212
+ }
213
+ ],
214
+ "stateMutability": "view",
215
+ "type": "function"
216
+ },
217
+ {
218
+ "inputs": [],
219
+ "name": "getRegistry",
220
+ "outputs": [
221
+ {
222
+ "internalType": "contract IRegistry",
223
+ "name": "",
224
+ "type": "address"
225
+ }
226
+ ],
227
+ "stateMutability": "view",
228
+ "type": "function"
229
+ },
230
+ {
231
+ "inputs": [],
232
+ "name": "getToken",
233
+ "outputs": [
234
+ {
235
+ "internalType": "contract IERC20Metadata",
236
+ "name": "token",
237
+ "type": "address"
238
+ }
239
+ ],
240
+ "stateMutability": "view",
241
+ "type": "function"
242
+ },
243
+ {
244
+ "inputs": [],
245
+ "name": "getWallet",
246
+ "outputs": [
247
+ {
248
+ "internalType": "address",
249
+ "name": "walletAddress",
250
+ "type": "address"
251
+ }
252
+ ],
253
+ "stateMutability": "view",
254
+ "type": "function"
255
+ },
256
+ {
257
+ "inputs": [],
258
+ "name": "linkToRegisteredNftId",
259
+ "outputs": [],
260
+ "stateMutability": "nonpayable",
261
+ "type": "function"
262
+ },
263
+ {
264
+ "inputs": [],
265
+ "name": "lock",
266
+ "outputs": [],
267
+ "stateMutability": "nonpayable",
268
+ "type": "function"
269
+ },
270
+ {
271
+ "inputs": [
272
+ {
273
+ "internalType": "bytes4",
274
+ "name": "interfaceId",
275
+ "type": "bytes4"
276
+ }
277
+ ],
278
+ "name": "supportsInterface",
279
+ "outputs": [
280
+ {
281
+ "internalType": "bool",
282
+ "name": "",
283
+ "type": "bool"
284
+ }
285
+ ],
286
+ "stateMutability": "view",
287
+ "type": "function"
288
+ },
289
+ {
290
+ "inputs": [],
291
+ "name": "unlock",
292
+ "outputs": [],
293
+ "stateMutability": "nonpayable",
294
+ "type": "function"
295
+ }
296
+ ],
297
+ "bytecode": "0x",
298
+ "deployedBytecode": "0x",
299
+ "linkReferences": {},
300
+ "deployedLinkReferences": {}
301
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/c5de1cd84fb0ad7c62806910154fca8c.json"
4
+ }