@etherisc/gif-next 0.0.2-fe34d97-357 → 0.0.2-fe88ad7-208

Sign up to get free protection for your applications and to get access to all the features.
Files changed (410) 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 +331 -23
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +675 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +246 -23
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +152 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +90 -171
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +55 -177
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +520 -133
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +540 -113
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  36. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  42. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  44. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  45. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  46. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  47. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +788 -0
  48. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  49. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  50. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +946 -1214
  52. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
  53. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.json +448 -0
  54. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  55. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +570 -0
  56. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  57. package/artifacts/contracts/instance/Instance.sol/Instance.json +1852 -1184
  58. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  59. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1047 -0
  60. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +763 -0
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1422 -0
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +963 -0
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +460 -0
  68. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +285 -0
  70. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  71. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +280 -48
  72. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +33 -1
  74. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +27 -158
  76. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  78. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +37 -245
  79. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  80. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
  81. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  82. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +254 -0
  83. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  84. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  85. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  86. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IDistribution.sol/IDistribution.json} +2 -2
  87. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  89. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  90. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  91. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  92. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  93. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  94. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  95. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +945 -0
  97. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +432 -0
  99. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +380 -89
  101. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  102. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +693 -0
  103. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  104. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +420 -0
  105. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  106. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +669 -0
  107. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +185 -83
  109. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  110. package/artifacts/contracts/instance/{base/IService.sol/IService.json → service/IDistributionService.sol/IDistributionService.json} +206 -60
  111. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  112. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +664 -0
  113. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  114. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +200 -77
  115. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  116. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +184 -196
  117. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  118. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +993 -0
  119. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  120. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +464 -0
  121. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  122. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +345 -89
  123. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  124. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +420 -0
  125. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  126. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +300 -267
  127. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  128. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +420 -0
  129. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  130. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  131. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  132. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +376 -37
  133. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  134. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +976 -0
  135. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  136. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  137. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  138. package/artifacts/contracts/registry/Registry.sol/Registry.json +397 -115
  139. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  140. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  141. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  142. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1195 -0
  143. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  144. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +451 -0
  145. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  146. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +546 -0
  147. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  148. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +397 -0
  149. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  150. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  151. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  153. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  154. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  155. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  156. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
  157. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  158. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +172 -95
  159. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  161. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  162. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  163. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  164. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  165. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  166. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
  167. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +4 -0
  168. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +442 -0
  169. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  170. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/Service.sol/Service.json} +224 -56
  171. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  172. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  173. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  174. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  175. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  176. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  177. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  178. package/artifacts/contracts/test/TestFee.sol/TestFee.json +4 -4
  179. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  180. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
  181. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  182. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +14 -14
  183. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  184. package/artifacts/contracts/test/TestService.sol/TestService.json +289 -68
  185. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  186. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  187. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  188. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  189. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  190. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +103 -23
  191. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  192. package/artifacts/contracts/test/Usdc.sol/USDC.json +91 -53
  193. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  194. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  196. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  197. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  198. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  199. package/artifacts/contracts/types/Fee.sol/FeeLib.json +52 -13
  200. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  201. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  202. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  203. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  204. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  205. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  206. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  207. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  208. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  209. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  210. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  211. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  212. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  213. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  214. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  215. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +134 -8
  216. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  217. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  218. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  219. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  220. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  221. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  222. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  223. package/artifacts/contracts/types/UFixed.sol/{UFixedMathLib.json → UFixedLib.json} +3 -3
  224. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  225. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  226. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  227. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  228. package/contracts/components/BaseComponent.sol +104 -39
  229. package/contracts/components/Distribution.sol +163 -0
  230. package/contracts/components/IBaseComponent.sol +18 -3
  231. package/contracts/components/IDistributionComponent.sol +44 -0
  232. package/contracts/components/IPoolComponent.sol +19 -10
  233. package/contracts/components/IProductComponent.sol +25 -9
  234. package/contracts/components/Pool.sol +126 -46
  235. package/contracts/components/Product.sol +172 -61
  236. package/contracts/experiment/cloning/Cloner.sol +47 -0
  237. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +23 -0
  238. package/contracts/instance/BundleManager.sol +129 -0
  239. package/contracts/instance/Cloneable.sol +46 -0
  240. package/contracts/instance/IInstance.sol +55 -44
  241. package/contracts/instance/IInstanceBase.sol +26 -0
  242. package/contracts/instance/IInstanceService.sol +40 -0
  243. package/contracts/instance/Instance.sol +261 -56
  244. package/contracts/instance/InstanceAccessManager.sol +303 -0
  245. package/contracts/instance/InstanceBase.sol +41 -0
  246. package/contracts/instance/InstanceReader.sol +315 -0
  247. package/contracts/instance/InstanceService.sol +350 -0
  248. package/contracts/instance/InstanceServiceManager.sol +54 -0
  249. package/contracts/instance/ObjectManager.sol +101 -0
  250. package/contracts/instance/base/ComponentServiceBase.sol +57 -17
  251. package/contracts/instance/base/IInstanceBase.sol +6 -2
  252. package/contracts/instance/base/IKeyValueStore.sol +13 -14
  253. package/contracts/instance/base/ILifecycle.sol +3 -3
  254. package/contracts/instance/base/KeyValueStore.sol +49 -38
  255. package/contracts/instance/base/Lifecycle.sol +1 -1
  256. package/contracts/instance/module/IAccess.sol +48 -0
  257. package/contracts/instance/module/IBundle.sol +20 -0
  258. package/contracts/instance/module/IDistribution.sol +39 -0
  259. package/contracts/instance/module/IPolicy.sol +45 -0
  260. package/contracts/instance/module/IRisk.sol +11 -0
  261. package/contracts/instance/module/ISetup.sol +46 -0
  262. package/contracts/instance/module/ITreasury.sol +23 -0
  263. package/contracts/instance/service/BundleService.sol +260 -0
  264. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  265. package/contracts/instance/service/ComponentOwnerService.sol +238 -78
  266. package/contracts/instance/service/DistributionService.sol +113 -0
  267. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  268. package/contracts/instance/service/IBundleService.sol +45 -0
  269. package/contracts/instance/service/IComponentOwnerService.sol +1 -3
  270. package/contracts/instance/service/IDistributionService.sol +12 -0
  271. package/contracts/instance/service/IPolicyService.sol +87 -0
  272. package/contracts/instance/service/IPoolService.sol +8 -18
  273. package/contracts/instance/service/IProductService.sol +12 -50
  274. package/contracts/instance/service/PolicyService.sol +503 -0
  275. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  276. package/contracts/instance/service/PoolService.sol +87 -92
  277. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  278. package/contracts/instance/service/ProductService.sol +103 -339
  279. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  280. package/contracts/registry/ChainNft.sol +79 -36
  281. package/contracts/registry/IRegistry.sol +58 -24
  282. package/contracts/registry/IRegistryService.sol +58 -0
  283. package/contracts/registry/ITransferInterceptor.sol +6 -0
  284. package/contracts/registry/Registry.sol +303 -288
  285. package/contracts/registry/RegistryAccessManager.sol +210 -0
  286. package/contracts/registry/RegistryService.sol +323 -0
  287. package/contracts/registry/RegistryServiceManager.sol +62 -0
  288. package/contracts/registry/ReleaseManager.sol +348 -0
  289. package/contracts/registry/TokenRegistry.sol +110 -0
  290. package/contracts/shared/ContractDeployerLib.sol +72 -0
  291. package/contracts/shared/ERC165.sol +6 -2
  292. package/contracts/shared/INftOwnable.sol +22 -0
  293. package/contracts/shared/IRegisterable.sol +8 -15
  294. package/contracts/shared/IService.sol +16 -0
  295. package/contracts/shared/IVersionable.sol +55 -11
  296. package/contracts/shared/NftOwnable.sol +134 -0
  297. package/contracts/shared/ProxyManager.sol +94 -0
  298. package/contracts/shared/Registerable.sol +63 -59
  299. package/contracts/shared/RegisterableUpgradable.sol +16 -0
  300. package/contracts/shared/Service.sol +58 -0
  301. package/contracts/shared/TokenHandler.sol +27 -0
  302. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  303. package/contracts/shared/Versionable.sol +113 -55
  304. package/contracts/test/TestFee.sol +2 -2
  305. package/contracts/test/TestRegisterable.sol +5 -6
  306. package/contracts/test/TestRoleId.sol +1 -1
  307. package/contracts/test/TestService.sol +7 -14
  308. package/contracts/types/DistributorType.sol +55 -0
  309. package/contracts/types/Fee.sol +10 -5
  310. package/contracts/types/Key32.sol +8 -3
  311. package/contracts/types/NftIdSet.sol +26 -24
  312. package/contracts/types/NumberId.sol +52 -0
  313. package/contracts/types/ObjectType.sol +32 -7
  314. package/contracts/types/Referral.sol +85 -0
  315. package/contracts/types/RoleId.sol +62 -10
  316. package/contracts/types/StateId.sol +5 -1
  317. package/contracts/types/Timestamp.sol +7 -3
  318. package/contracts/types/UFixed.sol +128 -12
  319. package/contracts/types/Version.sol +13 -1
  320. package/package.json +4 -3
  321. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  322. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  323. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  324. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  325. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  326. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  327. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  328. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  329. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  330. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  331. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  332. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  333. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -265
  334. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  335. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  336. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -265
  337. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  338. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  339. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  340. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  341. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  342. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  343. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  344. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -136
  345. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  346. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  347. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  348. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -136
  349. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  350. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  351. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -288
  352. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  353. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -288
  354. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  355. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  356. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  357. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  358. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  359. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  360. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  361. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  362. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -132
  363. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  364. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -150
  365. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  366. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  367. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -531
  368. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  369. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  370. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  371. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -531
  372. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  373. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  374. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  375. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  376. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  377. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  378. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  379. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -455
  380. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  381. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -479
  382. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  383. package/contracts/experiment/statemachine/README.md +0 -112
  384. package/contracts/instance/IInstanceLinked.sol +0 -8
  385. package/contracts/instance/base/IService.sol +0 -15
  386. package/contracts/instance/base/InstanceBase.sol +0 -84
  387. package/contracts/instance/base/ModuleBase.sol +0 -53
  388. package/contracts/instance/base/ServiceBase.sol +0 -37
  389. package/contracts/instance/module/access/Access.sol +0 -149
  390. package/contracts/instance/module/access/IAccess.sol +0 -53
  391. package/contracts/instance/module/bundle/BundleModule.sol +0 -135
  392. package/contracts/instance/module/bundle/IBundle.sol +0 -51
  393. package/contracts/instance/module/compensation/CompensationModule.sol +0 -17
  394. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  395. package/contracts/instance/module/component/ComponentModule.sol +0 -81
  396. package/contracts/instance/module/component/IComponent.sol +0 -29
  397. package/contracts/instance/module/policy/IPolicy.sol +0 -62
  398. package/contracts/instance/module/policy/PolicyModule.sol +0 -92
  399. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  400. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  401. package/contracts/instance/module/risk/IRisk.sol +0 -27
  402. package/contracts/instance/module/risk/RiskModule.sol +0 -70
  403. package/contracts/instance/module/treasury/ITreasury.sol +0 -96
  404. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  405. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -171
  406. package/contracts/registry/IChainNft.sol +0 -21
  407. package/contracts/registry/IRegistryLinked.sol +0 -8
  408. package/contracts/shared/IOwnable.sol +0 -6
  409. package/contracts/test/TestPool.sol +0 -24
  410. package/contracts/test/TestProduct.sol +0 -66
@@ -4,47 +4,77 @@
4
4
  "sourceName": "contracts/instance/IInstance.sol",
5
5
  "abi": [
6
6
  {
7
- "anonymous": false,
8
7
  "inputs": [
9
8
  {
10
- "indexed": false,
11
- "internalType": "RoleId",
12
- "name": "role",
13
- "type": "bytes8"
9
+ "internalType": "ObjectType",
10
+ "name": "objectType",
11
+ "type": "uint8"
14
12
  },
15
13
  {
16
- "indexed": false,
17
- "internalType": "string",
18
- "name": "roleName",
19
- "type": "string"
14
+ "internalType": "StateId",
15
+ "name": "fromStateId",
16
+ "type": "uint8"
17
+ },
18
+ {
19
+ "internalType": "StateId",
20
+ "name": "toStateId",
21
+ "type": "uint8"
20
22
  }
21
23
  ],
22
- "name": "LogAccessRoleCreated",
23
- "type": "event"
24
+ "name": "ErrorInvalidStateTransition",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "NftId",
31
+ "name": "nftId",
32
+ "type": "uint96"
33
+ },
34
+ {
35
+ "internalType": "ObjectType",
36
+ "name": "objectType",
37
+ "type": "uint8"
38
+ }
39
+ ],
40
+ "name": "ErrorNoLifecycle",
41
+ "type": "error"
24
42
  },
25
43
  {
26
44
  "anonymous": false,
27
45
  "inputs": [
28
46
  {
29
47
  "indexed": false,
30
- "internalType": "RoleId",
31
- "name": "role",
32
- "type": "bytes8"
48
+ "internalType": "ObjectType",
49
+ "name": "objectType",
50
+ "type": "uint8"
51
+ },
52
+ {
53
+ "indexed": false,
54
+ "internalType": "KeyId",
55
+ "name": "keyId",
56
+ "type": "bytes31"
57
+ },
58
+ {
59
+ "indexed": false,
60
+ "internalType": "StateId",
61
+ "name": "state",
62
+ "type": "uint8"
33
63
  },
34
64
  {
35
65
  "indexed": false,
36
66
  "internalType": "address",
37
- "name": "member",
67
+ "name": "createdBy",
38
68
  "type": "address"
39
69
  },
40
70
  {
41
71
  "indexed": false,
42
- "internalType": "bool",
43
- "name": "isMember",
44
- "type": "bool"
72
+ "internalType": "address",
73
+ "name": "txOrigin",
74
+ "type": "address"
45
75
  }
46
76
  ],
47
- "name": "LogAccessRoleGranted",
77
+ "name": "LogInfoCreated",
48
78
  "type": "event"
49
79
  },
50
80
  {
@@ -52,62 +82,92 @@
52
82
  "inputs": [
53
83
  {
54
84
  "indexed": false,
55
- "internalType": "RoleId",
56
- "name": "role",
57
- "type": "bytes8"
85
+ "internalType": "ObjectType",
86
+ "name": "objectType",
87
+ "type": "uint8"
58
88
  },
59
89
  {
60
90
  "indexed": false,
61
- "internalType": "bool",
62
- "name": "active",
63
- "type": "bool"
64
- }
65
- ],
66
- "name": "LogAccessRoleStateSet",
67
- "type": "event"
68
- },
69
- {
70
- "anonymous": false,
71
- "inputs": [
91
+ "internalType": "KeyId",
92
+ "name": "keyId",
93
+ "type": "bytes31"
94
+ },
72
95
  {
73
96
  "indexed": false,
74
- "internalType": "Version",
75
- "name": "version",
76
- "type": "uint24"
97
+ "internalType": "StateId",
98
+ "name": "state",
99
+ "type": "uint8"
77
100
  },
78
101
  {
79
102
  "indexed": false,
80
103
  "internalType": "address",
81
- "name": "implementation",
104
+ "name": "updatedBy",
82
105
  "type": "address"
83
106
  },
84
107
  {
85
108
  "indexed": false,
86
109
  "internalType": "address",
87
- "name": "activatedBy",
110
+ "name": "txOrigin",
88
111
  "type": "address"
112
+ },
113
+ {
114
+ "indexed": false,
115
+ "internalType": "Blocknumber",
116
+ "name": "lastUpdatedIn",
117
+ "type": "uint32"
89
118
  }
90
119
  ],
91
- "name": "LogVersionableActivated",
120
+ "name": "LogInfoUpdated",
92
121
  "type": "event"
93
122
  },
94
123
  {
124
+ "anonymous": false,
95
125
  "inputs": [
96
126
  {
127
+ "indexed": false,
128
+ "internalType": "ObjectType",
129
+ "name": "objectType",
130
+ "type": "uint8"
131
+ },
132
+ {
133
+ "indexed": false,
134
+ "internalType": "KeyId",
135
+ "name": "keyId",
136
+ "type": "bytes31"
137
+ },
138
+ {
139
+ "indexed": false,
140
+ "internalType": "StateId",
141
+ "name": "stateOld",
142
+ "type": "uint8"
143
+ },
144
+ {
145
+ "indexed": false,
146
+ "internalType": "StateId",
147
+ "name": "stateNew",
148
+ "type": "uint8"
149
+ },
150
+ {
151
+ "indexed": false,
97
152
  "internalType": "address",
98
- "name": "implementation",
153
+ "name": "updatedBy",
99
154
  "type": "address"
100
155
  },
101
156
  {
157
+ "indexed": false,
102
158
  "internalType": "address",
103
- "name": "activatedBy",
159
+ "name": "txOrigin",
104
160
  "type": "address"
161
+ },
162
+ {
163
+ "indexed": false,
164
+ "internalType": "Blocknumber",
165
+ "name": "lastUpdatedIn",
166
+ "type": "uint32"
105
167
  }
106
168
  ],
107
- "name": "activate",
108
- "outputs": [],
109
- "stateMutability": "nonpayable",
110
- "type": "function"
169
+ "name": "LogStateUpdated",
170
+ "type": "event"
111
171
  },
112
172
  {
113
173
  "inputs": [
@@ -116,82 +176,72 @@
116
176
  "name": "bundleNftId",
117
177
  "type": "uint96"
118
178
  },
119
- {
120
- "internalType": "NftId",
121
- "name": "poolNftId",
122
- "type": "uint96"
123
- },
124
- {
125
- "internalType": "uint256",
126
- "name": "amount",
127
- "type": "uint256"
128
- }
129
- ],
130
- "name": "addBundleToPool",
131
- "outputs": [],
132
- "stateMutability": "nonpayable",
133
- "type": "function"
134
- },
135
- {
136
- "inputs": [
137
- {
138
- "internalType": "uint256",
139
- "name": "amount",
140
- "type": "uint256"
141
- },
142
179
  {
143
180
  "components": [
144
181
  {
145
- "internalType": "UFixed",
146
- "name": "fractionalFee",
182
+ "internalType": "NftId",
183
+ "name": "poolNftId",
184
+ "type": "uint96"
185
+ },
186
+ {
187
+ "components": [
188
+ {
189
+ "internalType": "UFixed",
190
+ "name": "fractionalFee",
191
+ "type": "uint256"
192
+ },
193
+ {
194
+ "internalType": "uint256",
195
+ "name": "fixedFee",
196
+ "type": "uint256"
197
+ }
198
+ ],
199
+ "internalType": "struct Fee",
200
+ "name": "fee",
201
+ "type": "tuple"
202
+ },
203
+ {
204
+ "internalType": "bytes",
205
+ "name": "filter",
206
+ "type": "bytes"
207
+ },
208
+ {
209
+ "internalType": "uint256",
210
+ "name": "capitalAmount",
211
+ "type": "uint256"
212
+ },
213
+ {
214
+ "internalType": "uint256",
215
+ "name": "lockedAmount",
147
216
  "type": "uint256"
148
217
  },
149
218
  {
150
219
  "internalType": "uint256",
151
- "name": "fixedFee",
220
+ "name": "balanceAmount",
221
+ "type": "uint256"
222
+ },
223
+ {
224
+ "internalType": "uint256",
225
+ "name": "lifetime",
152
226
  "type": "uint256"
227
+ },
228
+ {
229
+ "internalType": "Timestamp",
230
+ "name": "expiredAt",
231
+ "type": "uint40"
232
+ },
233
+ {
234
+ "internalType": "Timestamp",
235
+ "name": "closedAt",
236
+ "type": "uint40"
153
237
  }
154
238
  ],
155
- "internalType": "struct Fee",
156
- "name": "fee",
239
+ "internalType": "struct IBundle.BundleInfo",
240
+ "name": "bundle",
157
241
  "type": "tuple"
158
242
  }
159
243
  ],
160
- "name": "calculateFeeAmount",
161
- "outputs": [
162
- {
163
- "internalType": "uint256",
164
- "name": "feeAmount",
165
- "type": "uint256"
166
- },
167
- {
168
- "internalType": "uint256",
169
- "name": "netAmount",
170
- "type": "uint256"
171
- }
172
- ],
173
- "stateMutability": "pure",
174
- "type": "function"
175
- },
176
- {
177
- "inputs": [
178
- {
179
- "internalType": "NftId",
180
- "name": "bundleNftId",
181
- "type": "uint96"
182
- },
183
- {
184
- "internalType": "NftId",
185
- "name": "policyNftId",
186
- "type": "uint96"
187
- },
188
- {
189
- "internalType": "uint256",
190
- "name": "amount",
191
- "type": "uint256"
192
- }
193
- ],
194
- "name": "collateralizePolicy",
244
+ "name": "createBundle",
195
245
  "outputs": [],
196
246
  "stateMutability": "nonpayable",
197
247
  "type": "function"
@@ -200,31 +250,55 @@
200
250
  "inputs": [
201
251
  {
202
252
  "internalType": "NftId",
203
- "name": "bundleNftId",
204
- "type": "uint96"
205
- },
206
- {
207
- "internalType": "NftId",
208
- "name": "poolNftId",
253
+ "name": "distributionNftId",
209
254
  "type": "uint96"
210
255
  },
211
256
  {
212
- "internalType": "uint256",
213
- "name": "amount",
214
- "type": "uint256"
215
- },
216
- {
217
- "internalType": "uint256",
218
- "name": "lifetime",
219
- "type": "uint256"
220
- },
221
- {
222
- "internalType": "bytes",
223
- "name": "filter",
224
- "type": "bytes"
257
+ "components": [
258
+ {
259
+ "internalType": "NftId",
260
+ "name": "productNftId",
261
+ "type": "uint96"
262
+ },
263
+ {
264
+ "internalType": "contract TokenHandler",
265
+ "name": "tokenHandler",
266
+ "type": "address"
267
+ },
268
+ {
269
+ "components": [
270
+ {
271
+ "internalType": "UFixed",
272
+ "name": "fractionalFee",
273
+ "type": "uint256"
274
+ },
275
+ {
276
+ "internalType": "uint256",
277
+ "name": "fixedFee",
278
+ "type": "uint256"
279
+ }
280
+ ],
281
+ "internalType": "struct Fee",
282
+ "name": "distributionFee",
283
+ "type": "tuple"
284
+ },
285
+ {
286
+ "internalType": "bool",
287
+ "name": "isIntercepting",
288
+ "type": "bool"
289
+ },
290
+ {
291
+ "internalType": "address",
292
+ "name": "wallet",
293
+ "type": "address"
294
+ }
295
+ ],
296
+ "internalType": "struct ISetup.DistributionSetupInfo",
297
+ "name": "setup",
298
+ "type": "tuple"
225
299
  }
226
300
  ],
227
- "name": "createBundleInfo",
301
+ "name": "createDistributionSetup",
228
302
  "outputs": [],
229
303
  "stateMutability": "nonpayable",
230
304
  "type": "function"
@@ -236,140 +310,78 @@
236
310
  "name": "policyNftId",
237
311
  "type": "uint96"
238
312
  },
239
- {
240
- "internalType": "NftId",
241
- "name": "productNftId",
242
- "type": "uint96"
243
- },
244
- {
245
- "internalType": "RiskId",
246
- "name": "riskId",
247
- "type": "bytes8"
248
- },
249
- {
250
- "internalType": "uint256",
251
- "name": "sumInsuredAmount",
252
- "type": "uint256"
253
- },
254
- {
255
- "internalType": "uint256",
256
- "name": "premiumAmount",
257
- "type": "uint256"
258
- },
259
- {
260
- "internalType": "uint256",
261
- "name": "lifetime",
262
- "type": "uint256"
263
- },
264
- {
265
- "internalType": "NftId",
266
- "name": "bundleNftId",
267
- "type": "uint96"
268
- }
269
- ],
270
- "name": "createPolicyInfo",
271
- "outputs": [],
272
- "stateMutability": "nonpayable",
273
- "type": "function"
274
- },
275
- {
276
- "inputs": [
277
- {
278
- "internalType": "RiskId",
279
- "name": "riskId",
280
- "type": "bytes8"
281
- },
282
- {
283
- "internalType": "NftId",
284
- "name": "productNftId",
285
- "type": "uint96"
286
- },
287
- {
288
- "internalType": "bytes",
289
- "name": "data",
290
- "type": "bytes"
291
- }
292
- ],
293
- "name": "createRisk",
294
- "outputs": [],
295
- "stateMutability": "nonpayable",
296
- "type": "function"
297
- },
298
- {
299
- "inputs": [
300
- {
301
- "internalType": "string",
302
- "name": "roleName",
303
- "type": "string"
304
- }
305
- ],
306
- "name": "createRole",
307
- "outputs": [
308
- {
309
- "internalType": "RoleId",
310
- "name": "role",
311
- "type": "bytes8"
312
- }
313
- ],
314
- "stateMutability": "nonpayable",
315
- "type": "function"
316
- },
317
- {
318
- "inputs": [
319
- {
320
- "internalType": "NftId",
321
- "name": "poolNftId",
322
- "type": "uint96"
323
- }
324
- ],
325
- "name": "getBundleCount",
326
- "outputs": [
327
- {
328
- "internalType": "uint256",
329
- "name": "bundleCount",
330
- "type": "uint256"
331
- }
332
- ],
333
- "stateMutability": "view",
334
- "type": "function"
335
- },
336
- {
337
- "inputs": [
338
- {
339
- "internalType": "NftId",
340
- "name": "nftId",
341
- "type": "uint96"
342
- }
343
- ],
344
- "name": "getBundleInfo",
345
- "outputs": [
346
313
  {
347
314
  "components": [
348
315
  {
349
316
  "internalType": "NftId",
350
- "name": "poolNftId",
317
+ "name": "productNftId",
351
318
  "type": "uint96"
352
319
  },
353
320
  {
354
- "internalType": "bytes",
355
- "name": "filter",
356
- "type": "bytes"
321
+ "internalType": "NftId",
322
+ "name": "bundleNftId",
323
+ "type": "uint96"
324
+ },
325
+ {
326
+ "internalType": "ReferralId",
327
+ "name": "referralId",
328
+ "type": "bytes8"
329
+ },
330
+ {
331
+ "internalType": "RiskId",
332
+ "name": "riskId",
333
+ "type": "bytes8"
357
334
  },
358
335
  {
359
336
  "internalType": "uint256",
360
- "name": "capitalAmount",
337
+ "name": "sumInsuredAmount",
361
338
  "type": "uint256"
362
339
  },
363
340
  {
364
341
  "internalType": "uint256",
365
- "name": "lockedAmount",
342
+ "name": "premiumAmount",
366
343
  "type": "uint256"
367
344
  },
368
345
  {
369
346
  "internalType": "uint256",
370
- "name": "balanceAmount",
347
+ "name": "premiumPaidAmount",
348
+ "type": "uint256"
349
+ },
350
+ {
351
+ "internalType": "uint256",
352
+ "name": "lifetime",
353
+ "type": "uint256"
354
+ },
355
+ {
356
+ "internalType": "bytes",
357
+ "name": "applicationData",
358
+ "type": "bytes"
359
+ },
360
+ {
361
+ "internalType": "bytes",
362
+ "name": "policyData",
363
+ "type": "bytes"
364
+ },
365
+ {
366
+ "internalType": "uint16",
367
+ "name": "claimsCount",
368
+ "type": "uint16"
369
+ },
370
+ {
371
+ "internalType": "uint16",
372
+ "name": "openClaimsCount",
373
+ "type": "uint16"
374
+ },
375
+ {
376
+ "internalType": "uint256",
377
+ "name": "payoutAmount",
371
378
  "type": "uint256"
372
379
  },
380
+ {
381
+ "internalType": "Timestamp",
382
+ "name": "activatedAt",
383
+ "type": "uint40"
384
+ },
373
385
  {
374
386
  "internalType": "Timestamp",
375
387
  "name": "expiredAt",
@@ -381,12 +393,14 @@
381
393
  "type": "uint40"
382
394
  }
383
395
  ],
384
- "internalType": "struct IBundle.BundleInfo",
385
- "name": "bundleInfo",
396
+ "internalType": "struct IPolicy.PolicyInfo",
397
+ "name": "policy",
386
398
  "type": "tuple"
387
399
  }
388
400
  ],
389
- "stateMutability": "view",
401
+ "name": "createPolicy",
402
+ "outputs": [],
403
+ "stateMutability": "nonpayable",
390
404
  "type": "function"
391
405
  },
392
406
  {
@@ -396,255 +410,6 @@
396
410
  "name": "poolNftId",
397
411
  "type": "uint96"
398
412
  },
399
- {
400
- "internalType": "uint256",
401
- "name": "index",
402
- "type": "uint256"
403
- }
404
- ],
405
- "name": "getBundleNftId",
406
- "outputs": [
407
- {
408
- "internalType": "NftId",
409
- "name": "bundleNftId",
410
- "type": "uint96"
411
- }
412
- ],
413
- "stateMutability": "view",
414
- "type": "function"
415
- },
416
- {
417
- "inputs": [
418
- {
419
- "internalType": "NftId",
420
- "name": "nftId",
421
- "type": "uint96"
422
- }
423
- ],
424
- "name": "getBundleState",
425
- "outputs": [
426
- {
427
- "internalType": "StateId",
428
- "name": "state",
429
- "type": "uint8"
430
- }
431
- ],
432
- "stateMutability": "view",
433
- "type": "function"
434
- },
435
- {
436
- "inputs": [],
437
- "name": "getComponentCount",
438
- "outputs": [
439
- {
440
- "internalType": "uint256",
441
- "name": "numberOfCompnents",
442
- "type": "uint256"
443
- }
444
- ],
445
- "stateMutability": "view",
446
- "type": "function"
447
- },
448
- {
449
- "inputs": [
450
- {
451
- "internalType": "uint256",
452
- "name": "idx",
453
- "type": "uint256"
454
- }
455
- ],
456
- "name": "getComponentId",
457
- "outputs": [
458
- {
459
- "internalType": "NftId",
460
- "name": "nftId",
461
- "type": "uint96"
462
- }
463
- ],
464
- "stateMutability": "view",
465
- "type": "function"
466
- },
467
- {
468
- "inputs": [],
469
- "name": "getComponentOwnerService",
470
- "outputs": [
471
- {
472
- "internalType": "contract IComponentOwnerService",
473
- "name": "",
474
- "type": "address"
475
- }
476
- ],
477
- "stateMutability": "view",
478
- "type": "function"
479
- },
480
- {
481
- "inputs": [
482
- {
483
- "internalType": "NftId",
484
- "name": "nftId",
485
- "type": "uint96"
486
- }
487
- ],
488
- "name": "getComponentState",
489
- "outputs": [
490
- {
491
- "internalType": "StateId",
492
- "name": "state",
493
- "type": "uint8"
494
- }
495
- ],
496
- "stateMutability": "view",
497
- "type": "function"
498
- },
499
- {
500
- "inputs": [
501
- {
502
- "internalType": "NftId",
503
- "name": "nftId",
504
- "type": "uint96"
505
- }
506
- ],
507
- "name": "getComponentToken",
508
- "outputs": [
509
- {
510
- "internalType": "contract IERC20Metadata",
511
- "name": "token",
512
- "type": "address"
513
- }
514
- ],
515
- "stateMutability": "view",
516
- "type": "function"
517
- },
518
- {
519
- "inputs": [
520
- {
521
- "internalType": "NftId",
522
- "name": "nftId",
523
- "type": "uint96"
524
- }
525
- ],
526
- "name": "getComponentWallet",
527
- "outputs": [
528
- {
529
- "internalType": "address",
530
- "name": "wallet",
531
- "type": "address"
532
- }
533
- ],
534
- "stateMutability": "view",
535
- "type": "function"
536
- },
537
- {
538
- "inputs": [],
539
- "name": "getData",
540
- "outputs": [
541
- {
542
- "internalType": "bytes",
543
- "name": "data",
544
- "type": "bytes"
545
- }
546
- ],
547
- "stateMutability": "view",
548
- "type": "function"
549
- },
550
- {
551
- "inputs": [
552
- {
553
- "internalType": "UFixed",
554
- "name": "fractionalFee",
555
- "type": "uint256"
556
- },
557
- {
558
- "internalType": "uint256",
559
- "name": "fixedFee",
560
- "type": "uint256"
561
- }
562
- ],
563
- "name": "getFee",
564
- "outputs": [
565
- {
566
- "components": [
567
- {
568
- "internalType": "UFixed",
569
- "name": "fractionalFee",
570
- "type": "uint256"
571
- },
572
- {
573
- "internalType": "uint256",
574
- "name": "fixedFee",
575
- "type": "uint256"
576
- }
577
- ],
578
- "internalType": "struct Fee",
579
- "name": "fee",
580
- "type": "tuple"
581
- }
582
- ],
583
- "stateMutability": "pure",
584
- "type": "function"
585
- },
586
- {
587
- "inputs": [],
588
- "name": "getKeyValueStore",
589
- "outputs": [
590
- {
591
- "internalType": "contract IKeyValueStore",
592
- "name": "keyValueStore",
593
- "type": "address"
594
- }
595
- ],
596
- "stateMutability": "view",
597
- "type": "function"
598
- },
599
- {
600
- "inputs": [],
601
- "name": "getNftId",
602
- "outputs": [
603
- {
604
- "internalType": "NftId",
605
- "name": "nftId",
606
- "type": "uint96"
607
- }
608
- ],
609
- "stateMutability": "view",
610
- "type": "function"
611
- },
612
- {
613
- "inputs": [],
614
- "name": "getOwner",
615
- "outputs": [
616
- {
617
- "internalType": "address",
618
- "name": "owner",
619
- "type": "address"
620
- }
621
- ],
622
- "stateMutability": "view",
623
- "type": "function"
624
- },
625
- {
626
- "inputs": [],
627
- "name": "getParentNftId",
628
- "outputs": [
629
- {
630
- "internalType": "NftId",
631
- "name": "nftId",
632
- "type": "uint96"
633
- }
634
- ],
635
- "stateMutability": "view",
636
- "type": "function"
637
- },
638
- {
639
- "inputs": [
640
- {
641
- "internalType": "NftId",
642
- "name": "nftId",
643
- "type": "uint96"
644
- }
645
- ],
646
- "name": "getPolicyInfo",
647
- "outputs": [
648
413
  {
649
414
  "components": [
650
415
  {
@@ -653,379 +418,90 @@
653
418
  "type": "uint96"
654
419
  },
655
420
  {
656
- "internalType": "NftId",
657
- "name": "bundleNftId",
658
- "type": "uint96"
659
- },
660
- {
661
- "internalType": "address",
662
- "name": "beneficiary",
421
+ "internalType": "contract TokenHandler",
422
+ "name": "tokenHandler",
663
423
  "type": "address"
664
424
  },
665
- {
666
- "internalType": "RiskId",
667
- "name": "riskId",
668
- "type": "bytes8"
669
- },
670
- {
671
- "internalType": "uint256",
672
- "name": "sumInsuredAmount",
673
- "type": "uint256"
674
- },
675
- {
676
- "internalType": "uint256",
677
- "name": "premiumAmount",
678
- "type": "uint256"
679
- },
680
- {
681
- "internalType": "uint256",
682
- "name": "premiumPaidAmount",
683
- "type": "uint256"
684
- },
685
- {
686
- "internalType": "uint256",
687
- "name": "lifetime",
688
- "type": "uint256"
689
- },
690
- {
691
- "internalType": "bytes",
692
- "name": "applicationData",
693
- "type": "bytes"
694
- },
695
- {
696
- "internalType": "bytes",
697
- "name": "policyData",
698
- "type": "bytes"
699
- },
700
- {
701
- "internalType": "Timestamp",
702
- "name": "activatedAt",
703
- "type": "uint40"
704
- },
705
- {
706
- "internalType": "Timestamp",
707
- "name": "expiredAt",
708
- "type": "uint40"
709
- },
710
- {
711
- "internalType": "Timestamp",
712
- "name": "closedAt",
713
- "type": "uint40"
714
- }
715
- ],
716
- "internalType": "struct IPolicy.PolicyInfo",
717
- "name": "info",
718
- "type": "tuple"
719
- }
720
- ],
721
- "stateMutability": "view",
722
- "type": "function"
723
- },
724
- {
725
- "inputs": [
726
- {
727
- "internalType": "NftId",
728
- "name": "nftId",
729
- "type": "uint96"
730
- }
731
- ],
732
- "name": "getPolicyState",
733
- "outputs": [
734
- {
735
- "internalType": "StateId",
736
- "name": "state",
737
- "type": "uint8"
738
- }
739
- ],
740
- "stateMutability": "view",
741
- "type": "function"
742
- },
743
- {
744
- "inputs": [
745
- {
746
- "internalType": "NftId",
747
- "name": "nftId",
748
- "type": "uint96"
749
- }
750
- ],
751
- "name": "getPoolInfo",
752
- "outputs": [
753
- {
754
- "components": [
755
- {
756
- "internalType": "bool",
757
- "name": "isVerifying",
758
- "type": "bool"
759
- },
760
425
  {
761
426
  "internalType": "UFixed",
762
427
  "name": "collateralizationLevel",
763
428
  "type": "uint256"
764
- }
765
- ],
766
- "internalType": "struct IPool.PoolInfo",
767
- "name": "info",
768
- "type": "tuple"
769
- }
770
- ],
771
- "stateMutability": "view",
772
- "type": "function"
773
- },
774
- {
775
- "inputs": [],
776
- "name": "getPoolService",
777
- "outputs": [
778
- {
779
- "internalType": "contract IPoolService",
780
- "name": "",
781
- "type": "address"
782
- }
783
- ],
784
- "stateMutability": "view",
785
- "type": "function"
786
- },
787
- {
788
- "inputs": [
789
- {
790
- "internalType": "NftId",
791
- "name": "componentNftId",
792
- "type": "uint96"
793
- }
794
- ],
795
- "name": "getProductNftId",
796
- "outputs": [
797
- {
798
- "internalType": "NftId",
799
- "name": "productNftId",
800
- "type": "uint96"
801
- }
802
- ],
803
- "stateMutability": "view",
804
- "type": "function"
805
- },
806
- {
807
- "inputs": [],
808
- "name": "getProductService",
809
- "outputs": [
810
- {
811
- "internalType": "contract IProductService",
812
- "name": "",
813
- "type": "address"
814
- }
815
- ],
816
- "stateMutability": "view",
817
- "type": "function"
818
- },
819
- {
820
- "inputs": [],
821
- "name": "getRegistry",
822
- "outputs": [
823
- {
824
- "internalType": "contract IRegistry",
825
- "name": "registry",
826
- "type": "address"
827
- }
828
- ],
829
- "stateMutability": "view",
830
- "type": "function"
831
- },
832
- {
833
- "inputs": [
834
- {
835
- "internalType": "RiskId",
836
- "name": "riskId",
837
- "type": "bytes8"
838
- }
839
- ],
840
- "name": "getRiskInfo",
841
- "outputs": [
842
- {
843
- "components": [
844
- {
845
- "internalType": "NftId",
846
- "name": "productNftId",
847
- "type": "uint96"
848
429
  },
849
430
  {
850
- "internalType": "bytes",
851
- "name": "data",
852
- "type": "bytes"
853
- }
854
- ],
855
- "internalType": "struct IRisk.RiskInfo",
856
- "name": "info",
857
- "type": "tuple"
858
- }
859
- ],
860
- "stateMutability": "view",
861
- "type": "function"
862
- },
863
- {
864
- "inputs": [
865
- {
866
- "internalType": "RiskId",
867
- "name": "riskId",
868
- "type": "bytes8"
869
- }
870
- ],
871
- "name": "getRiskState",
872
- "outputs": [
873
- {
874
- "internalType": "StateId",
875
- "name": "state",
876
- "type": "uint8"
877
- }
878
- ],
879
- "stateMutability": "view",
880
- "type": "function"
881
- },
882
- {
883
- "inputs": [
884
- {
885
- "internalType": "uint256",
886
- "name": "idx",
887
- "type": "uint256"
888
- }
889
- ],
890
- "name": "getRole",
891
- "outputs": [
892
- {
893
- "internalType": "RoleId",
894
- "name": "role",
895
- "type": "bytes8"
896
- }
897
- ],
898
- "stateMutability": "view",
899
- "type": "function"
900
- },
901
- {
902
- "inputs": [],
903
- "name": "getRoleCount",
904
- "outputs": [
905
- {
906
- "internalType": "uint256",
907
- "name": "roles",
908
- "type": "uint256"
909
- }
910
- ],
911
- "stateMutability": "view",
912
- "type": "function"
913
- },
914
- {
915
- "inputs": [
916
- {
917
- "internalType": "string",
918
- "name": "roleName",
919
- "type": "string"
920
- }
921
- ],
922
- "name": "getRoleId",
923
- "outputs": [
924
- {
925
- "internalType": "RoleId",
926
- "name": "role",
927
- "type": "bytes8"
928
- }
929
- ],
930
- "stateMutability": "pure",
931
- "type": "function"
932
- },
933
- {
934
- "inputs": [
935
- {
936
- "internalType": "RoleId",
937
- "name": "role",
938
- "type": "bytes8"
939
- }
940
- ],
941
- "name": "getRoleInfo",
942
- "outputs": [
943
- {
944
- "components": [
945
- {
946
- "internalType": "RoleId",
947
- "name": "id",
948
- "type": "bytes8"
949
- },
950
- {
951
- "internalType": "string",
952
- "name": "name",
953
- "type": "string"
431
+ "components": [
432
+ {
433
+ "internalType": "UFixed",
434
+ "name": "fractionalFee",
435
+ "type": "uint256"
436
+ },
437
+ {
438
+ "internalType": "uint256",
439
+ "name": "fixedFee",
440
+ "type": "uint256"
441
+ }
442
+ ],
443
+ "internalType": "struct Fee",
444
+ "name": "poolFee",
445
+ "type": "tuple"
954
446
  },
955
447
  {
956
- "internalType": "bool",
957
- "name": "isActive",
958
- "type": "bool"
959
- }
960
- ],
961
- "internalType": "struct IAccess.RoleInfo",
962
- "name": "info",
963
- "type": "tuple"
964
- }
965
- ],
966
- "stateMutability": "view",
967
- "type": "function"
968
- },
969
- {
970
- "inputs": [
971
- {
972
- "internalType": "RoleId",
973
- "name": "role",
974
- "type": "bytes8"
975
- },
976
- {
977
- "internalType": "uint256",
978
- "name": "idx",
979
- "type": "uint256"
980
- }
981
- ],
982
- "name": "getRoleMember",
983
- "outputs": [
984
- {
985
- "internalType": "address",
986
- "name": "roleMember",
987
- "type": "address"
988
- }
989
- ],
990
- "stateMutability": "view",
991
- "type": "function"
992
- },
993
- {
994
- "inputs": [
995
- {
996
- "internalType": "RoleId",
997
- "name": "role",
998
- "type": "bytes8"
999
- }
1000
- ],
1001
- "name": "getRoleMemberCount",
1002
- "outputs": [
1003
- {
1004
- "internalType": "uint256",
1005
- "name": "roleMembers",
1006
- "type": "uint256"
1007
- }
1008
- ],
1009
- "stateMutability": "view",
1010
- "type": "function"
1011
- },
1012
- {
1013
- "inputs": [
1014
- {
1015
- "internalType": "NftId",
1016
- "name": "componentNftId",
1017
- "type": "uint96"
1018
- }
1019
- ],
1020
- "name": "getTokenHandler",
1021
- "outputs": [
1022
- {
1023
- "internalType": "contract TokenHandler",
1024
- "name": "tokenHandler",
1025
- "type": "address"
448
+ "components": [
449
+ {
450
+ "internalType": "UFixed",
451
+ "name": "fractionalFee",
452
+ "type": "uint256"
453
+ },
454
+ {
455
+ "internalType": "uint256",
456
+ "name": "fixedFee",
457
+ "type": "uint256"
458
+ }
459
+ ],
460
+ "internalType": "struct Fee",
461
+ "name": "stakingFee",
462
+ "type": "tuple"
463
+ },
464
+ {
465
+ "components": [
466
+ {
467
+ "internalType": "UFixed",
468
+ "name": "fractionalFee",
469
+ "type": "uint256"
470
+ },
471
+ {
472
+ "internalType": "uint256",
473
+ "name": "fixedFee",
474
+ "type": "uint256"
475
+ }
476
+ ],
477
+ "internalType": "struct Fee",
478
+ "name": "performanceFee",
479
+ "type": "tuple"
480
+ },
481
+ {
482
+ "internalType": "bool",
483
+ "name": "isIntercepting",
484
+ "type": "bool"
485
+ },
486
+ {
487
+ "internalType": "bool",
488
+ "name": "isConfirmingApplication",
489
+ "type": "bool"
490
+ },
491
+ {
492
+ "internalType": "address",
493
+ "name": "wallet",
494
+ "type": "address"
495
+ }
496
+ ],
497
+ "internalType": "struct ISetup.PoolSetupInfo",
498
+ "name": "setup",
499
+ "type": "tuple"
1026
500
  }
1027
501
  ],
1028
- "stateMutability": "view",
502
+ "name": "createPoolSetup",
503
+ "outputs": [],
504
+ "stateMutability": "nonpayable",
1029
505
  "type": "function"
1030
506
  },
1031
507
  {
@@ -1034,15 +510,22 @@
1034
510
  "internalType": "NftId",
1035
511
  "name": "productNftId",
1036
512
  "type": "uint96"
1037
- }
1038
- ],
1039
- "name": "getTreasuryInfo",
1040
- "outputs": [
513
+ },
1041
514
  {
1042
515
  "components": [
516
+ {
517
+ "internalType": "contract IERC20Metadata",
518
+ "name": "token",
519
+ "type": "address"
520
+ },
521
+ {
522
+ "internalType": "contract TokenHandler",
523
+ "name": "tokenHandler",
524
+ "type": "address"
525
+ },
1043
526
  {
1044
527
  "internalType": "NftId",
1045
- "name": "compensationNftId",
528
+ "name": "distributionNftId",
1046
529
  "type": "uint96"
1047
530
  },
1048
531
  {
@@ -1051,9 +534,21 @@
1051
534
  "type": "uint96"
1052
535
  },
1053
536
  {
1054
- "internalType": "contract IERC20Metadata",
1055
- "name": "token",
1056
- "type": "address"
537
+ "components": [
538
+ {
539
+ "internalType": "UFixed",
540
+ "name": "fractionalFee",
541
+ "type": "uint256"
542
+ },
543
+ {
544
+ "internalType": "uint256",
545
+ "name": "fixedFee",
546
+ "type": "uint256"
547
+ }
548
+ ],
549
+ "internalType": "struct Fee",
550
+ "name": "distributionFee",
551
+ "type": "tuple"
1057
552
  },
1058
553
  {
1059
554
  "components": [
@@ -1069,7 +564,7 @@
1069
564
  }
1070
565
  ],
1071
566
  "internalType": "struct Fee",
1072
- "name": "commissionFee",
567
+ "name": "productFee",
1073
568
  "type": "tuple"
1074
569
  },
1075
570
  {
@@ -1086,7 +581,7 @@
1086
581
  }
1087
582
  ],
1088
583
  "internalType": "struct Fee",
1089
- "name": "policyFee",
584
+ "name": "processingFee",
1090
585
  "type": "tuple"
1091
586
  },
1092
587
  {
@@ -1103,7 +598,7 @@
1103
598
  }
1104
599
  ],
1105
600
  "internalType": "struct Fee",
1106
- "name": "processingFee",
601
+ "name": "poolFee",
1107
602
  "type": "tuple"
1108
603
  },
1109
604
  {
@@ -1139,99 +634,233 @@
1139
634
  "internalType": "struct Fee",
1140
635
  "name": "performanceFee",
1141
636
  "type": "tuple"
637
+ },
638
+ {
639
+ "internalType": "bool",
640
+ "name": "isIntercepting",
641
+ "type": "bool"
642
+ },
643
+ {
644
+ "internalType": "address",
645
+ "name": "wallet",
646
+ "type": "address"
1142
647
  }
1143
648
  ],
1144
- "internalType": "struct ITreasury.TreasuryInfo",
1145
- "name": "info",
649
+ "internalType": "struct ISetup.ProductSetupInfo",
650
+ "name": "setup",
1146
651
  "type": "tuple"
1147
652
  }
1148
653
  ],
1149
- "stateMutability": "view",
654
+ "name": "createProductSetup",
655
+ "outputs": [],
656
+ "stateMutability": "nonpayable",
1150
657
  "type": "function"
1151
658
  },
1152
659
  {
1153
- "inputs": [],
1154
- "name": "getType",
660
+ "inputs": [
661
+ {
662
+ "internalType": "RiskId",
663
+ "name": "riskId",
664
+ "type": "bytes8"
665
+ },
666
+ {
667
+ "components": [
668
+ {
669
+ "internalType": "NftId",
670
+ "name": "productNftId",
671
+ "type": "uint96"
672
+ },
673
+ {
674
+ "internalType": "bytes",
675
+ "name": "data",
676
+ "type": "bytes"
677
+ }
678
+ ],
679
+ "internalType": "struct IRisk.RiskInfo",
680
+ "name": "risk",
681
+ "type": "tuple"
682
+ }
683
+ ],
684
+ "name": "createRisk",
685
+ "outputs": [],
686
+ "stateMutability": "nonpayable",
687
+ "type": "function"
688
+ },
689
+ {
690
+ "inputs": [
691
+ {
692
+ "internalType": "Key32",
693
+ "name": "key",
694
+ "type": "bytes32"
695
+ }
696
+ ],
697
+ "name": "exists",
1155
698
  "outputs": [
1156
699
  {
1157
- "internalType": "ObjectType",
1158
- "name": "objectType",
1159
- "type": "uint8"
700
+ "internalType": "bool",
701
+ "name": "",
702
+ "type": "bool"
1160
703
  }
1161
704
  ],
1162
- "stateMutability": "pure",
705
+ "stateMutability": "view",
1163
706
  "type": "function"
1164
707
  },
1165
708
  {
1166
709
  "inputs": [
1167
710
  {
1168
- "internalType": "uint256",
1169
- "name": "a",
1170
- "type": "uint256"
1171
- },
711
+ "internalType": "Key32",
712
+ "name": "key",
713
+ "type": "bytes32"
714
+ }
715
+ ],
716
+ "name": "get",
717
+ "outputs": [
1172
718
  {
1173
- "internalType": "int8",
1174
- "name": "exp",
1175
- "type": "int8"
719
+ "components": [
720
+ {
721
+ "components": [
722
+ {
723
+ "internalType": "ObjectType",
724
+ "name": "objectType",
725
+ "type": "uint8"
726
+ },
727
+ {
728
+ "internalType": "StateId",
729
+ "name": "state",
730
+ "type": "uint8"
731
+ },
732
+ {
733
+ "internalType": "address",
734
+ "name": "updatedBy",
735
+ "type": "address"
736
+ },
737
+ {
738
+ "internalType": "Blocknumber",
739
+ "name": "updatedIn",
740
+ "type": "uint32"
741
+ },
742
+ {
743
+ "internalType": "Blocknumber",
744
+ "name": "createdIn",
745
+ "type": "uint32"
746
+ }
747
+ ],
748
+ "internalType": "struct IKeyValueStore.Metadata",
749
+ "name": "metadata",
750
+ "type": "tuple"
751
+ },
752
+ {
753
+ "internalType": "bytes",
754
+ "name": "data",
755
+ "type": "bytes"
756
+ }
757
+ ],
758
+ "internalType": "struct IKeyValueStore.Value",
759
+ "name": "value",
760
+ "type": "tuple"
1176
761
  }
1177
762
  ],
1178
- "name": "getUFixed",
763
+ "stateMutability": "view",
764
+ "type": "function"
765
+ },
766
+ {
767
+ "inputs": [],
768
+ "name": "getBundleManager",
1179
769
  "outputs": [
1180
770
  {
1181
- "internalType": "UFixed",
771
+ "internalType": "contract BundleManager",
1182
772
  "name": "",
1183
- "type": "uint256"
773
+ "type": "address"
1184
774
  }
1185
775
  ],
1186
- "stateMutability": "pure",
776
+ "stateMutability": "view",
1187
777
  "type": "function"
1188
778
  },
1189
779
  {
1190
- "inputs": [
780
+ "inputs": [],
781
+ "name": "getBundleService",
782
+ "outputs": [
1191
783
  {
1192
- "internalType": "uint256",
1193
- "name": "a",
1194
- "type": "uint256"
784
+ "internalType": "contract IBundleService",
785
+ "name": "",
786
+ "type": "address"
1195
787
  }
1196
788
  ],
1197
- "name": "getUFixed",
789
+ "stateMutability": "view",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "inputs": [],
794
+ "name": "getComponentOwnerService",
1198
795
  "outputs": [
1199
796
  {
1200
- "internalType": "UFixed",
797
+ "internalType": "contract IComponentOwnerService",
1201
798
  "name": "",
1202
- "type": "uint256"
799
+ "type": "address"
1203
800
  }
1204
801
  ],
1205
- "stateMutability": "pure",
802
+ "stateMutability": "view",
803
+ "type": "function"
804
+ },
805
+ {
806
+ "inputs": [
807
+ {
808
+ "internalType": "Key32",
809
+ "name": "key",
810
+ "type": "bytes32"
811
+ }
812
+ ],
813
+ "name": "getData",
814
+ "outputs": [
815
+ {
816
+ "internalType": "bytes",
817
+ "name": "data",
818
+ "type": "bytes"
819
+ }
820
+ ],
821
+ "stateMutability": "view",
1206
822
  "type": "function"
1207
823
  },
1208
824
  {
1209
825
  "inputs": [],
1210
- "name": "getVersion",
826
+ "name": "getDistributionService",
1211
827
  "outputs": [
1212
828
  {
1213
- "internalType": "Version",
829
+ "internalType": "contract IDistributionService",
1214
830
  "name": "",
1215
- "type": "uint24"
831
+ "type": "address"
1216
832
  }
1217
833
  ],
1218
- "stateMutability": "pure",
834
+ "stateMutability": "view",
1219
835
  "type": "function"
1220
836
  },
1221
837
  {
1222
838
  "inputs": [
1223
839
  {
1224
- "internalType": "uint256",
1225
- "name": "index",
1226
- "type": "uint256"
840
+ "internalType": "ObjectType",
841
+ "name": "objectType",
842
+ "type": "uint8"
843
+ }
844
+ ],
845
+ "name": "getInitialState",
846
+ "outputs": [
847
+ {
848
+ "internalType": "StateId",
849
+ "name": "",
850
+ "type": "uint8"
1227
851
  }
1228
852
  ],
1229
- "name": "getVersion",
853
+ "stateMutability": "view",
854
+ "type": "function"
855
+ },
856
+ {
857
+ "inputs": [],
858
+ "name": "getInstanceAccessManager",
1230
859
  "outputs": [
1231
860
  {
1232
- "internalType": "Version",
1233
- "name": "version",
1234
- "type": "uint24"
861
+ "internalType": "contract InstanceAccessManager",
862
+ "name": "",
863
+ "type": "address"
1235
864
  }
1236
865
  ],
1237
866
  "stateMutability": "view",
@@ -1239,12 +868,12 @@
1239
868
  },
1240
869
  {
1241
870
  "inputs": [],
1242
- "name": "getVersionCount",
871
+ "name": "getInstanceReader",
1243
872
  "outputs": [
1244
873
  {
1245
- "internalType": "uint256",
1246
- "name": "numberOfVersions",
1247
- "type": "uint256"
874
+ "internalType": "contract InstanceReader",
875
+ "name": "",
876
+ "type": "address"
1248
877
  }
1249
878
  ],
1250
879
  "stateMutability": "view",
@@ -1253,43 +882,43 @@
1253
882
  {
1254
883
  "inputs": [
1255
884
  {
1256
- "internalType": "Version",
1257
- "name": "version",
1258
- "type": "uint24"
885
+ "internalType": "Key32",
886
+ "name": "key",
887
+ "type": "bytes32"
1259
888
  }
1260
889
  ],
1261
- "name": "getVersionInfo",
890
+ "name": "getMetadata",
1262
891
  "outputs": [
1263
892
  {
1264
893
  "components": [
1265
894
  {
1266
- "internalType": "Version",
1267
- "name": "version",
1268
- "type": "uint24"
895
+ "internalType": "ObjectType",
896
+ "name": "objectType",
897
+ "type": "uint8"
1269
898
  },
1270
899
  {
1271
- "internalType": "address",
1272
- "name": "implementation",
1273
- "type": "address"
900
+ "internalType": "StateId",
901
+ "name": "state",
902
+ "type": "uint8"
1274
903
  },
1275
904
  {
1276
905
  "internalType": "address",
1277
- "name": "activatedBy",
906
+ "name": "updatedBy",
1278
907
  "type": "address"
1279
908
  },
1280
909
  {
1281
- "internalType": "Timestamp",
1282
- "name": "activatedAt",
1283
- "type": "uint40"
910
+ "internalType": "Blocknumber",
911
+ "name": "updatedIn",
912
+ "type": "uint32"
1284
913
  },
1285
914
  {
1286
915
  "internalType": "Blocknumber",
1287
- "name": "activatedIn",
916
+ "name": "createdIn",
1288
917
  "type": "uint32"
1289
918
  }
1290
919
  ],
1291
- "internalType": "struct IVersionable.VersionInfo",
1292
- "name": "versionInfo",
920
+ "internalType": "struct IKeyValueStore.Metadata",
921
+ "name": "metadata",
1293
922
  "type": "tuple"
1294
923
  }
1295
924
  ],
@@ -1298,24 +927,38 @@
1298
927
  },
1299
928
  {
1300
929
  "inputs": [],
1301
- "name": "getZeroFee",
930
+ "name": "getPolicyService",
931
+ "outputs": [
932
+ {
933
+ "internalType": "contract IPolicyService",
934
+ "name": "",
935
+ "type": "address"
936
+ }
937
+ ],
938
+ "stateMutability": "view",
939
+ "type": "function"
940
+ },
941
+ {
942
+ "inputs": [],
943
+ "name": "getPoolService",
944
+ "outputs": [
945
+ {
946
+ "internalType": "contract IPoolService",
947
+ "name": "",
948
+ "type": "address"
949
+ }
950
+ ],
951
+ "stateMutability": "view",
952
+ "type": "function"
953
+ },
954
+ {
955
+ "inputs": [],
956
+ "name": "getProductService",
1302
957
  "outputs": [
1303
958
  {
1304
- "components": [
1305
- {
1306
- "internalType": "UFixed",
1307
- "name": "fractionalFee",
1308
- "type": "uint256"
1309
- },
1310
- {
1311
- "internalType": "uint256",
1312
- "name": "fixedFee",
1313
- "type": "uint256"
1314
- }
1315
- ],
1316
- "internalType": "struct Fee",
1317
- "name": "fee",
1318
- "type": "tuple"
959
+ "internalType": "contract IProductService",
960
+ "name": "",
961
+ "type": "address"
1319
962
  }
1320
963
  ],
1321
964
  "stateMutability": "view",
@@ -1324,35 +967,31 @@
1324
967
  {
1325
968
  "inputs": [
1326
969
  {
1327
- "internalType": "RoleId",
1328
- "name": "role",
1329
- "type": "bytes8"
1330
- },
970
+ "internalType": "Key32",
971
+ "name": "key",
972
+ "type": "bytes32"
973
+ }
974
+ ],
975
+ "name": "getState",
976
+ "outputs": [
1331
977
  {
1332
- "internalType": "address",
1333
- "name": "member",
1334
- "type": "address"
978
+ "internalType": "StateId",
979
+ "name": "state",
980
+ "type": "uint8"
1335
981
  }
1336
982
  ],
1337
- "name": "grantRole",
1338
- "outputs": [],
1339
- "stateMutability": "nonpayable",
983
+ "stateMutability": "view",
1340
984
  "type": "function"
1341
985
  },
1342
986
  {
1343
987
  "inputs": [
1344
988
  {
1345
- "internalType": "RoleId",
1346
- "name": "role",
1347
- "type": "bytes8"
1348
- },
1349
- {
1350
- "internalType": "address",
1351
- "name": "member",
1352
- "type": "address"
989
+ "internalType": "ObjectType",
990
+ "name": "objectType",
991
+ "type": "uint8"
1353
992
  }
1354
993
  ],
1355
- "name": "hasRole",
994
+ "name": "hasLifecycle",
1356
995
  "outputs": [
1357
996
  {
1358
997
  "internalType": "bool",
@@ -1366,12 +1005,22 @@
1366
1005
  {
1367
1006
  "inputs": [
1368
1007
  {
1369
- "internalType": "Version",
1370
- "name": "version",
1371
- "type": "uint24"
1008
+ "internalType": "ObjectType",
1009
+ "name": "objectType",
1010
+ "type": "uint8"
1011
+ },
1012
+ {
1013
+ "internalType": "StateId",
1014
+ "name": "fromId",
1015
+ "type": "uint8"
1016
+ },
1017
+ {
1018
+ "internalType": "StateId",
1019
+ "name": "toId",
1020
+ "type": "uint8"
1372
1021
  }
1373
1022
  ],
1374
- "name": "isActivated",
1023
+ "name": "isValidTransition",
1375
1024
  "outputs": [
1376
1025
  {
1377
1026
  "internalType": "bool",
@@ -1383,156 +1032,126 @@
1383
1032
  "type": "function"
1384
1033
  },
1385
1034
  {
1386
- "inputs": [],
1387
- "name": "register",
1388
- "outputs": [
1035
+ "inputs": [
1389
1036
  {
1390
- "internalType": "NftId",
1391
- "name": "nftId",
1392
- "type": "uint96"
1037
+ "internalType": "bytes4",
1038
+ "name": "interfaceId",
1039
+ "type": "bytes4"
1393
1040
  }
1394
1041
  ],
1395
- "stateMutability": "nonpayable",
1396
- "type": "function"
1397
- },
1398
- {
1399
- "inputs": [
1400
- {
1401
- "internalType": "NftId",
1402
- "name": "nftId",
1403
- "type": "uint96"
1404
- },
1405
- {
1406
- "internalType": "contract IERC20Metadata",
1407
- "name": "token",
1408
- "type": "address"
1409
- },
1042
+ "name": "supportsInterface",
1043
+ "outputs": [
1410
1044
  {
1411
- "internalType": "address",
1412
- "name": "wallet",
1413
- "type": "address"
1045
+ "internalType": "bool",
1046
+ "name": "",
1047
+ "type": "bool"
1414
1048
  }
1415
1049
  ],
1416
- "name": "registerComponent",
1417
- "outputs": [],
1418
- "stateMutability": "nonpayable",
1050
+ "stateMutability": "view",
1419
1051
  "type": "function"
1420
1052
  },
1421
1053
  {
1422
1054
  "inputs": [
1423
1055
  {
1424
- "internalType": "NftId",
1425
- "name": "poolNftId",
1426
- "type": "uint96"
1056
+ "internalType": "ObjectType",
1057
+ "name": "objectType",
1058
+ "type": "uint8"
1427
1059
  },
1428
1060
  {
1429
- "internalType": "bool",
1430
- "name": "isVerifying",
1431
- "type": "bool"
1432
- },
1061
+ "internalType": "KeyId",
1062
+ "name": "id",
1063
+ "type": "bytes31"
1064
+ }
1065
+ ],
1066
+ "name": "toKey32",
1067
+ "outputs": [
1433
1068
  {
1434
- "internalType": "UFixed",
1435
- "name": "collateralizationLevel",
1436
- "type": "uint256"
1069
+ "internalType": "Key32",
1070
+ "name": "",
1071
+ "type": "bytes32"
1437
1072
  }
1438
1073
  ],
1439
- "name": "registerPool",
1440
- "outputs": [],
1441
- "stateMutability": "nonpayable",
1074
+ "stateMutability": "pure",
1442
1075
  "type": "function"
1443
1076
  },
1444
1077
  {
1445
1078
  "inputs": [
1446
1079
  {
1447
1080
  "internalType": "NftId",
1448
- "name": "productNftId",
1449
- "type": "uint96"
1450
- },
1451
- {
1452
- "internalType": "NftId",
1453
- "name": "distributorNftId",
1454
- "type": "uint96"
1455
- },
1456
- {
1457
- "internalType": "NftId",
1458
- "name": "poolNftId",
1081
+ "name": "bundleNftId",
1459
1082
  "type": "uint96"
1460
1083
  },
1461
- {
1462
- "internalType": "contract IERC20Metadata",
1463
- "name": "token",
1464
- "type": "address"
1465
- },
1466
1084
  {
1467
1085
  "components": [
1468
1086
  {
1469
- "internalType": "UFixed",
1470
- "name": "fractionalFee",
1471
- "type": "uint256"
1087
+ "internalType": "NftId",
1088
+ "name": "poolNftId",
1089
+ "type": "uint96"
1472
1090
  },
1473
1091
  {
1474
- "internalType": "uint256",
1475
- "name": "fixedFee",
1476
- "type": "uint256"
1477
- }
1478
- ],
1479
- "internalType": "struct Fee",
1480
- "name": "policyFee",
1481
- "type": "tuple"
1482
- },
1483
- {
1484
- "components": [
1092
+ "components": [
1093
+ {
1094
+ "internalType": "UFixed",
1095
+ "name": "fractionalFee",
1096
+ "type": "uint256"
1097
+ },
1098
+ {
1099
+ "internalType": "uint256",
1100
+ "name": "fixedFee",
1101
+ "type": "uint256"
1102
+ }
1103
+ ],
1104
+ "internalType": "struct Fee",
1105
+ "name": "fee",
1106
+ "type": "tuple"
1107
+ },
1485
1108
  {
1486
- "internalType": "UFixed",
1487
- "name": "fractionalFee",
1488
- "type": "uint256"
1109
+ "internalType": "bytes",
1110
+ "name": "filter",
1111
+ "type": "bytes"
1489
1112
  },
1490
1113
  {
1491
1114
  "internalType": "uint256",
1492
- "name": "fixedFee",
1493
- "type": "uint256"
1494
- }
1495
- ],
1496
- "internalType": "struct Fee",
1497
- "name": "processingFee",
1498
- "type": "tuple"
1499
- },
1500
- {
1501
- "components": [
1502
- {
1503
- "internalType": "UFixed",
1504
- "name": "fractionalFee",
1115
+ "name": "capitalAmount",
1505
1116
  "type": "uint256"
1506
1117
  },
1507
1118
  {
1508
1119
  "internalType": "uint256",
1509
- "name": "fixedFee",
1120
+ "name": "lockedAmount",
1510
1121
  "type": "uint256"
1511
- }
1512
- ],
1513
- "internalType": "struct Fee",
1514
- "name": "stakingFee",
1515
- "type": "tuple"
1516
- },
1517
- {
1518
- "components": [
1122
+ },
1519
1123
  {
1520
- "internalType": "UFixed",
1521
- "name": "fractionalFee",
1124
+ "internalType": "uint256",
1125
+ "name": "balanceAmount",
1522
1126
  "type": "uint256"
1523
1127
  },
1524
1128
  {
1525
1129
  "internalType": "uint256",
1526
- "name": "fixedFee",
1130
+ "name": "lifetime",
1527
1131
  "type": "uint256"
1132
+ },
1133
+ {
1134
+ "internalType": "Timestamp",
1135
+ "name": "expiredAt",
1136
+ "type": "uint40"
1137
+ },
1138
+ {
1139
+ "internalType": "Timestamp",
1140
+ "name": "closedAt",
1141
+ "type": "uint40"
1528
1142
  }
1529
1143
  ],
1530
- "internalType": "struct Fee",
1531
- "name": "performanceFee",
1144
+ "internalType": "struct IBundle.BundleInfo",
1145
+ "name": "bundle",
1532
1146
  "type": "tuple"
1147
+ },
1148
+ {
1149
+ "internalType": "StateId",
1150
+ "name": "newState",
1151
+ "type": "uint8"
1533
1152
  }
1534
1153
  ],
1535
- "name": "registerProductSetup",
1154
+ "name": "updateBundle",
1536
1155
  "outputs": [],
1537
1156
  "stateMutability": "nonpayable",
1538
1157
  "type": "function"
@@ -1545,110 +1164,92 @@
1545
1164
  "type": "uint96"
1546
1165
  },
1547
1166
  {
1548
- "internalType": "NftId",
1549
- "name": "policyNftId",
1550
- "type": "uint96"
1551
- }
1552
- ],
1553
- "name": "releasePolicy",
1554
- "outputs": [
1555
- {
1556
- "internalType": "uint256",
1557
- "name": "collateralAmount",
1558
- "type": "uint256"
1559
- }
1560
- ],
1561
- "stateMutability": "nonpayable",
1562
- "type": "function"
1563
- },
1564
- {
1565
- "inputs": [
1566
- {
1567
- "internalType": "RoleId",
1568
- "name": "role",
1569
- "type": "bytes8"
1570
- },
1571
- {
1572
- "internalType": "address",
1573
- "name": "member",
1574
- "type": "address"
1167
+ "internalType": "StateId",
1168
+ "name": "newState",
1169
+ "type": "uint8"
1575
1170
  }
1576
1171
  ],
1577
- "name": "revokeRole",
1172
+ "name": "updateBundleState",
1578
1173
  "outputs": [],
1579
1174
  "stateMutability": "nonpayable",
1580
1175
  "type": "function"
1581
1176
  },
1582
- {
1583
- "inputs": [
1584
- {
1585
- "internalType": "RoleId",
1586
- "name": "role",
1587
- "type": "bytes8"
1588
- }
1589
- ],
1590
- "name": "roleExists",
1591
- "outputs": [
1592
- {
1593
- "internalType": "bool",
1594
- "name": "",
1595
- "type": "bool"
1596
- }
1597
- ],
1598
- "stateMutability": "view",
1599
- "type": "function"
1600
- },
1601
1177
  {
1602
1178
  "inputs": [
1603
1179
  {
1604
1180
  "internalType": "NftId",
1605
- "name": "nftId",
1181
+ "name": "distributionNftId",
1606
1182
  "type": "uint96"
1607
1183
  },
1608
1184
  {
1609
1185
  "components": [
1610
1186
  {
1611
1187
  "internalType": "NftId",
1612
- "name": "poolNftId",
1188
+ "name": "productNftId",
1613
1189
  "type": "uint96"
1614
1190
  },
1615
1191
  {
1616
- "internalType": "bytes",
1617
- "name": "filter",
1618
- "type": "bytes"
1619
- },
1620
- {
1621
- "internalType": "uint256",
1622
- "name": "capitalAmount",
1623
- "type": "uint256"
1624
- },
1625
- {
1626
- "internalType": "uint256",
1627
- "name": "lockedAmount",
1628
- "type": "uint256"
1192
+ "internalType": "contract TokenHandler",
1193
+ "name": "tokenHandler",
1194
+ "type": "address"
1629
1195
  },
1630
1196
  {
1631
- "internalType": "uint256",
1632
- "name": "balanceAmount",
1633
- "type": "uint256"
1197
+ "components": [
1198
+ {
1199
+ "internalType": "UFixed",
1200
+ "name": "fractionalFee",
1201
+ "type": "uint256"
1202
+ },
1203
+ {
1204
+ "internalType": "uint256",
1205
+ "name": "fixedFee",
1206
+ "type": "uint256"
1207
+ }
1208
+ ],
1209
+ "internalType": "struct Fee",
1210
+ "name": "distributionFee",
1211
+ "type": "tuple"
1634
1212
  },
1635
1213
  {
1636
- "internalType": "Timestamp",
1637
- "name": "expiredAt",
1638
- "type": "uint40"
1214
+ "internalType": "bool",
1215
+ "name": "isIntercepting",
1216
+ "type": "bool"
1639
1217
  },
1640
1218
  {
1641
- "internalType": "Timestamp",
1642
- "name": "closedAt",
1643
- "type": "uint40"
1219
+ "internalType": "address",
1220
+ "name": "wallet",
1221
+ "type": "address"
1644
1222
  }
1645
1223
  ],
1646
- "internalType": "struct IBundle.BundleInfo",
1647
- "name": "bundleInfo",
1224
+ "internalType": "struct ISetup.DistributionSetupInfo",
1225
+ "name": "setup",
1648
1226
  "type": "tuple"
1227
+ },
1228
+ {
1229
+ "internalType": "StateId",
1230
+ "name": "newState",
1231
+ "type": "uint8"
1232
+ }
1233
+ ],
1234
+ "name": "updateDistributionSetup",
1235
+ "outputs": [],
1236
+ "stateMutability": "nonpayable",
1237
+ "type": "function"
1238
+ },
1239
+ {
1240
+ "inputs": [
1241
+ {
1242
+ "internalType": "NftId",
1243
+ "name": "distributionNftId",
1244
+ "type": "uint96"
1245
+ },
1246
+ {
1247
+ "internalType": "StateId",
1248
+ "name": "newState",
1249
+ "type": "uint8"
1649
1250
  }
1650
1251
  ],
1651
- "name": "setBundleInfo",
1252
+ "name": "updateDistributionSetupState",
1652
1253
  "outputs": [],
1653
1254
  "stateMutability": "nonpayable",
1654
1255
  "type": "function"
@@ -1673,9 +1274,9 @@
1673
1274
  "type": "uint96"
1674
1275
  },
1675
1276
  {
1676
- "internalType": "address",
1677
- "name": "beneficiary",
1678
- "type": "address"
1277
+ "internalType": "ReferralId",
1278
+ "name": "referralId",
1279
+ "type": "bytes8"
1679
1280
  },
1680
1281
  {
1681
1282
  "internalType": "RiskId",
@@ -1712,6 +1313,21 @@
1712
1313
  "name": "policyData",
1713
1314
  "type": "bytes"
1714
1315
  },
1316
+ {
1317
+ "internalType": "uint16",
1318
+ "name": "claimsCount",
1319
+ "type": "uint16"
1320
+ },
1321
+ {
1322
+ "internalType": "uint16",
1323
+ "name": "openClaimsCount",
1324
+ "type": "uint16"
1325
+ },
1326
+ {
1327
+ "internalType": "uint256",
1328
+ "name": "payoutAmount",
1329
+ "type": "uint256"
1330
+ },
1715
1331
  {
1716
1332
  "internalType": "Timestamp",
1717
1333
  "name": "activatedAt",
@@ -1729,11 +1345,16 @@
1729
1345
  }
1730
1346
  ],
1731
1347
  "internalType": "struct IPolicy.PolicyInfo",
1732
- "name": "info",
1348
+ "name": "policy",
1733
1349
  "type": "tuple"
1350
+ },
1351
+ {
1352
+ "internalType": "StateId",
1353
+ "name": "newState",
1354
+ "type": "uint8"
1734
1355
  }
1735
1356
  ],
1736
- "name": "setPolicyInfo",
1357
+ "name": "updatePolicy",
1737
1358
  "outputs": [],
1738
1359
  "stateMutability": "nonpayable",
1739
1360
  "type": "function"
@@ -1741,9 +1362,27 @@
1741
1362
  {
1742
1363
  "inputs": [
1743
1364
  {
1744
- "internalType": "RiskId",
1745
- "name": "riskId",
1746
- "type": "bytes8"
1365
+ "internalType": "NftId",
1366
+ "name": "policyNftId",
1367
+ "type": "uint96"
1368
+ },
1369
+ {
1370
+ "internalType": "StateId",
1371
+ "name": "newState",
1372
+ "type": "uint8"
1373
+ }
1374
+ ],
1375
+ "name": "updatePolicyState",
1376
+ "outputs": [],
1377
+ "stateMutability": "nonpayable",
1378
+ "type": "function"
1379
+ },
1380
+ {
1381
+ "inputs": [
1382
+ {
1383
+ "internalType": "NftId",
1384
+ "name": "poolNftId",
1385
+ "type": "uint96"
1747
1386
  },
1748
1387
  {
1749
1388
  "components": [
@@ -1753,17 +1392,93 @@
1753
1392
  "type": "uint96"
1754
1393
  },
1755
1394
  {
1756
- "internalType": "bytes",
1757
- "name": "data",
1758
- "type": "bytes"
1395
+ "internalType": "contract TokenHandler",
1396
+ "name": "tokenHandler",
1397
+ "type": "address"
1398
+ },
1399
+ {
1400
+ "internalType": "UFixed",
1401
+ "name": "collateralizationLevel",
1402
+ "type": "uint256"
1403
+ },
1404
+ {
1405
+ "components": [
1406
+ {
1407
+ "internalType": "UFixed",
1408
+ "name": "fractionalFee",
1409
+ "type": "uint256"
1410
+ },
1411
+ {
1412
+ "internalType": "uint256",
1413
+ "name": "fixedFee",
1414
+ "type": "uint256"
1415
+ }
1416
+ ],
1417
+ "internalType": "struct Fee",
1418
+ "name": "poolFee",
1419
+ "type": "tuple"
1420
+ },
1421
+ {
1422
+ "components": [
1423
+ {
1424
+ "internalType": "UFixed",
1425
+ "name": "fractionalFee",
1426
+ "type": "uint256"
1427
+ },
1428
+ {
1429
+ "internalType": "uint256",
1430
+ "name": "fixedFee",
1431
+ "type": "uint256"
1432
+ }
1433
+ ],
1434
+ "internalType": "struct Fee",
1435
+ "name": "stakingFee",
1436
+ "type": "tuple"
1437
+ },
1438
+ {
1439
+ "components": [
1440
+ {
1441
+ "internalType": "UFixed",
1442
+ "name": "fractionalFee",
1443
+ "type": "uint256"
1444
+ },
1445
+ {
1446
+ "internalType": "uint256",
1447
+ "name": "fixedFee",
1448
+ "type": "uint256"
1449
+ }
1450
+ ],
1451
+ "internalType": "struct Fee",
1452
+ "name": "performanceFee",
1453
+ "type": "tuple"
1454
+ },
1455
+ {
1456
+ "internalType": "bool",
1457
+ "name": "isIntercepting",
1458
+ "type": "bool"
1459
+ },
1460
+ {
1461
+ "internalType": "bool",
1462
+ "name": "isConfirmingApplication",
1463
+ "type": "bool"
1464
+ },
1465
+ {
1466
+ "internalType": "address",
1467
+ "name": "wallet",
1468
+ "type": "address"
1759
1469
  }
1760
1470
  ],
1761
- "internalType": "struct IRisk.RiskInfo",
1762
- "name": "info",
1471
+ "internalType": "struct ISetup.PoolSetupInfo",
1472
+ "name": "setup",
1763
1473
  "type": "tuple"
1474
+ },
1475
+ {
1476
+ "internalType": "StateId",
1477
+ "name": "newState",
1478
+ "type": "uint8"
1764
1479
  }
1765
1480
  ],
1766
- "name": "setRiskInfo",
1481
+ "name": "updatePoolSetup",
1767
1482
  "outputs": [],
1768
1483
  "stateMutability": "nonpayable",
1769
1484
  "type": "function"
@@ -1771,17 +1486,17 @@
1771
1486
  {
1772
1487
  "inputs": [
1773
1488
  {
1774
- "internalType": "RoleId",
1775
- "name": "role",
1776
- "type": "bytes8"
1489
+ "internalType": "NftId",
1490
+ "name": "poolNftId",
1491
+ "type": "uint96"
1777
1492
  },
1778
1493
  {
1779
- "internalType": "bool",
1780
- "name": "active",
1781
- "type": "bool"
1494
+ "internalType": "StateId",
1495
+ "name": "newState",
1496
+ "type": "uint8"
1782
1497
  }
1783
1498
  ],
1784
- "name": "setRoleState",
1499
+ "name": "updatePoolSetupState",
1785
1500
  "outputs": [],
1786
1501
  "stateMutability": "nonpayable",
1787
1502
  "type": "function"
@@ -1795,9 +1510,19 @@
1795
1510
  },
1796
1511
  {
1797
1512
  "components": [
1513
+ {
1514
+ "internalType": "contract IERC20Metadata",
1515
+ "name": "token",
1516
+ "type": "address"
1517
+ },
1518
+ {
1519
+ "internalType": "contract TokenHandler",
1520
+ "name": "tokenHandler",
1521
+ "type": "address"
1522
+ },
1798
1523
  {
1799
1524
  "internalType": "NftId",
1800
- "name": "compensationNftId",
1525
+ "name": "distributionNftId",
1801
1526
  "type": "uint96"
1802
1527
  },
1803
1528
  {
@@ -1806,9 +1531,21 @@
1806
1531
  "type": "uint96"
1807
1532
  },
1808
1533
  {
1809
- "internalType": "contract IERC20Metadata",
1810
- "name": "token",
1811
- "type": "address"
1534
+ "components": [
1535
+ {
1536
+ "internalType": "UFixed",
1537
+ "name": "fractionalFee",
1538
+ "type": "uint256"
1539
+ },
1540
+ {
1541
+ "internalType": "uint256",
1542
+ "name": "fixedFee",
1543
+ "type": "uint256"
1544
+ }
1545
+ ],
1546
+ "internalType": "struct Fee",
1547
+ "name": "distributionFee",
1548
+ "type": "tuple"
1812
1549
  },
1813
1550
  {
1814
1551
  "components": [
@@ -1824,7 +1561,7 @@
1824
1561
  }
1825
1562
  ],
1826
1563
  "internalType": "struct Fee",
1827
- "name": "commissionFee",
1564
+ "name": "productFee",
1828
1565
  "type": "tuple"
1829
1566
  },
1830
1567
  {
@@ -1841,7 +1578,7 @@
1841
1578
  }
1842
1579
  ],
1843
1580
  "internalType": "struct Fee",
1844
- "name": "policyFee",
1581
+ "name": "processingFee",
1845
1582
  "type": "tuple"
1846
1583
  },
1847
1584
  {
@@ -1858,7 +1595,7 @@
1858
1595
  }
1859
1596
  ],
1860
1597
  "internalType": "struct Fee",
1861
- "name": "processingFee",
1598
+ "name": "poolFee",
1862
1599
  "type": "tuple"
1863
1600
  },
1864
1601
  {
@@ -1894,51 +1631,29 @@
1894
1631
  "internalType": "struct Fee",
1895
1632
  "name": "performanceFee",
1896
1633
  "type": "tuple"
1634
+ },
1635
+ {
1636
+ "internalType": "bool",
1637
+ "name": "isIntercepting",
1638
+ "type": "bool"
1639
+ },
1640
+ {
1641
+ "internalType": "address",
1642
+ "name": "wallet",
1643
+ "type": "address"
1897
1644
  }
1898
1645
  ],
1899
- "internalType": "struct ITreasury.TreasuryInfo",
1900
- "name": "info",
1646
+ "internalType": "struct ISetup.ProductSetupInfo",
1647
+ "name": "setup",
1901
1648
  "type": "tuple"
1902
- }
1903
- ],
1904
- "name": "setTreasuryInfo",
1905
- "outputs": [],
1906
- "stateMutability": "nonpayable",
1907
- "type": "function"
1908
- },
1909
- {
1910
- "inputs": [
1911
- {
1912
- "internalType": "bytes4",
1913
- "name": "interfaceId",
1914
- "type": "bytes4"
1915
- }
1916
- ],
1917
- "name": "supportsInterface",
1918
- "outputs": [
1919
- {
1920
- "internalType": "bool",
1921
- "name": "",
1922
- "type": "bool"
1923
- }
1924
- ],
1925
- "stateMutability": "view",
1926
- "type": "function"
1927
- },
1928
- {
1929
- "inputs": [
1930
- {
1931
- "internalType": "NftId",
1932
- "name": "nftId",
1933
- "type": "uint96"
1934
1649
  },
1935
1650
  {
1936
1651
  "internalType": "StateId",
1937
- "name": "state",
1652
+ "name": "newState",
1938
1653
  "type": "uint8"
1939
1654
  }
1940
1655
  ],
1941
- "name": "updateBundleState",
1656
+ "name": "updateProductSetup",
1942
1657
  "outputs": [],
1943
1658
  "stateMutability": "nonpayable",
1944
1659
  "type": "function"
@@ -1947,16 +1662,16 @@
1947
1662
  "inputs": [
1948
1663
  {
1949
1664
  "internalType": "NftId",
1950
- "name": "nftId",
1665
+ "name": "productNftId",
1951
1666
  "type": "uint96"
1952
1667
  },
1953
1668
  {
1954
1669
  "internalType": "StateId",
1955
- "name": "state",
1670
+ "name": "newState",
1956
1671
  "type": "uint8"
1957
1672
  }
1958
1673
  ],
1959
- "name": "updatePolicyState",
1674
+ "name": "updateProductSetupState",
1960
1675
  "outputs": [],
1961
1676
  "stateMutability": "nonpayable",
1962
1677
  "type": "function"
@@ -1968,13 +1683,30 @@
1968
1683
  "name": "riskId",
1969
1684
  "type": "bytes8"
1970
1685
  },
1686
+ {
1687
+ "components": [
1688
+ {
1689
+ "internalType": "NftId",
1690
+ "name": "productNftId",
1691
+ "type": "uint96"
1692
+ },
1693
+ {
1694
+ "internalType": "bytes",
1695
+ "name": "data",
1696
+ "type": "bytes"
1697
+ }
1698
+ ],
1699
+ "internalType": "struct IRisk.RiskInfo",
1700
+ "name": "risk",
1701
+ "type": "tuple"
1702
+ },
1971
1703
  {
1972
1704
  "internalType": "StateId",
1973
- "name": "state",
1705
+ "name": "newState",
1974
1706
  "type": "uint8"
1975
1707
  }
1976
1708
  ],
1977
- "name": "updateRiskState",
1709
+ "name": "updateRisk",
1978
1710
  "outputs": [],
1979
1711
  "stateMutability": "nonpayable",
1980
1712
  "type": "function"
@@ -1982,17 +1714,17 @@
1982
1714
  {
1983
1715
  "inputs": [
1984
1716
  {
1985
- "internalType": "Key32",
1986
- "name": "key",
1987
- "type": "bytes32"
1717
+ "internalType": "RiskId",
1718
+ "name": "riskId",
1719
+ "type": "bytes8"
1988
1720
  },
1989
1721
  {
1990
1722
  "internalType": "StateId",
1991
- "name": "state",
1723
+ "name": "newState",
1992
1724
  "type": "uint8"
1993
1725
  }
1994
1726
  ],
1995
- "name": "updateState",
1727
+ "name": "updateRiskState",
1996
1728
  "outputs": [],
1997
1729
  "stateMutability": "nonpayable",
1998
1730
  "type": "function"