@etherisc/gif-next 0.0.2-de220d6-949 → 0.0.2-e37834a-021

Sign up to get free protection for your applications and to get access to all the features.
Files changed (286) hide show
  1. package/README.md +71 -0
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +80 -41
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +445 -0
  6. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +43 -40
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +177 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +108 -156
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +67 -139
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +299 -84
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +250 -53
  18. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -34
  21. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  28. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  31. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  37. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +882 -586
  39. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
  40. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  41. package/artifacts/contracts/instance/Instance.sol/Instance.json +1011 -638
  42. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +139 -46
  44. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +51 -1
  46. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  48. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  49. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
  50. package/artifacts/contracts/instance/base/IService.sol/IService.json +99 -55
  51. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
  52. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +178 -48
  53. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  54. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +41 -23
  55. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
  57. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
  58. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +135 -55
  60. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
  62. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
  64. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +55 -54
  65. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +56 -55
  68. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
  70. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
  73. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
  74. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
  75. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
  76. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
  77. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
  78. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
  79. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +53 -40
  82. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
  83. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +53 -40
  84. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
  86. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +29 -14
  87. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
  88. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +28 -13
  89. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
  91. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
  92. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
  93. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
  94. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
  95. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
  96. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +326 -221
  97. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
  99. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +326 -221
  101. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  102. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +251 -84
  103. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  104. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +526 -0
  105. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  106. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +99 -74
  107. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  108. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +369 -0
  109. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  110. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +158 -50
  111. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  112. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +246 -49
  113. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  114. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +230 -52
  115. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  116. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +361 -70
  117. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  118. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +141 -12
  119. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  120. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
  121. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  122. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +293 -40
  123. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  124. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +668 -0
  125. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  126. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  127. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  128. package/artifacts/contracts/registry/Registry.sol/Registry.json +483 -120
  129. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  130. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +885 -0
  131. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  132. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +460 -0
  133. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  134. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  135. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  137. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +1 -1
  138. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +43 -40
  140. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  141. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  142. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +132 -0
  144. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  145. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +344 -0
  146. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  147. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +76 -37
  148. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  149. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  150. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  151. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  152. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
  153. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +445 -0
  154. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  156. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestPool.sol/TestPool.json +299 -84
  158. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
  159. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +297 -58
  160. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  161. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +93 -39
  162. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  164. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestService.sol/TestService.json +161 -68
  166. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  167. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  168. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  169. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  170. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +89 -25
  171. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  172. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  173. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  175. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
  177. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  179. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  180. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  181. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  182. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  183. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  185. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
  186. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
  187. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  188. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  189. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  191. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  196. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  197. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  198. package/contracts/components/BaseComponent.sol +12 -21
  199. package/contracts/components/Distribution.sol +155 -0
  200. package/contracts/components/IBaseComponent.sol +2 -2
  201. package/contracts/components/IDistributionComponent.sol +46 -0
  202. package/contracts/components/IPoolComponent.sol +15 -8
  203. package/contracts/components/IProductComponent.sol +26 -8
  204. package/contracts/components/Pool.sol +99 -27
  205. package/contracts/components/Product.sol +204 -22
  206. package/contracts/experiment/errors/Revert.sol +4 -13
  207. package/contracts/instance/IInstance.sol +10 -8
  208. package/contracts/instance/Instance.sol +25 -8
  209. package/contracts/instance/base/ComponentServiceBase.sol +13 -6
  210. package/contracts/instance/base/IInstanceBase.sol +11 -2
  211. package/contracts/instance/base/IKeyValueStore.sol +4 -3
  212. package/contracts/instance/base/InstanceBase.sol +19 -10
  213. package/contracts/instance/base/KeyValueStore.sol +12 -7
  214. package/contracts/instance/base/Lifecycle.sol +15 -10
  215. package/contracts/instance/base/ModuleBase.sol +22 -17
  216. package/contracts/instance/base/ServiceBase.sol +19 -13
  217. package/contracts/instance/module/access/Access.sol +3 -3
  218. package/contracts/instance/module/bundle/BundleModule.sol +10 -12
  219. package/contracts/instance/module/bundle/IBundle.sol +6 -11
  220. package/contracts/instance/module/component/ComponentModule.sol +34 -58
  221. package/contracts/instance/module/component/IComponent.sol +7 -32
  222. package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
  223. package/contracts/instance/module/distribution/IDistribution.sol +10 -0
  224. package/contracts/instance/module/policy/IPolicy.sol +10 -8
  225. package/contracts/instance/module/policy/PolicyModule.sol +33 -19
  226. package/contracts/instance/module/pool/IPoolModule.sol +4 -4
  227. package/contracts/instance/module/pool/PoolModule.sol +23 -15
  228. package/contracts/instance/module/risk/IRisk.sol +18 -2
  229. package/contracts/instance/module/risk/RiskModule.sol +56 -2
  230. package/contracts/instance/module/treasury/ITreasury.sol +32 -51
  231. package/contracts/instance/module/treasury/TokenHandler.sol +2 -2
  232. package/contracts/instance/module/treasury/TreasuryModule.sol +68 -89
  233. package/contracts/instance/service/ComponentOwnerService.sol +197 -95
  234. package/contracts/instance/service/DistributionService.sol +54 -0
  235. package/contracts/instance/service/IComponentOwnerService.sol +0 -2
  236. package/contracts/instance/service/IDistributionService.sol +12 -0
  237. package/contracts/instance/service/IPoolService.sol +7 -0
  238. package/contracts/instance/service/IProductService.sol +56 -7
  239. package/contracts/instance/service/PoolService.sol +49 -23
  240. package/contracts/instance/service/ProductService.sol +247 -91
  241. package/contracts/registry/ChainNft.sol +43 -15
  242. package/contracts/registry/IChainNft.sol +3 -2
  243. package/contracts/registry/IRegistry.sol +44 -28
  244. package/contracts/registry/IRegistryService.sol +29 -0
  245. package/contracts/registry/ITransferInterceptor.sol +6 -0
  246. package/contracts/registry/Registry.sol +383 -274
  247. package/contracts/registry/RegistryService.sol +375 -0
  248. package/contracts/registry/RegistryServiceManager.sol +52 -0
  249. package/contracts/shared/ContractDeployerLib.sol +72 -0
  250. package/contracts/shared/ERC165.sol +1 -1
  251. package/contracts/shared/IRegisterable.sol +7 -9
  252. package/contracts/shared/IVersionable.sol +55 -11
  253. package/contracts/shared/NftOwnable.sol +87 -0
  254. package/contracts/shared/ProxyManager.sol +103 -0
  255. package/contracts/shared/Registerable.sol +74 -43
  256. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  257. package/contracts/shared/Versionable.sol +112 -54
  258. package/contracts/test/TestDistribution.sol +22 -0
  259. package/contracts/test/TestPool.sol +7 -2
  260. package/contracts/test/TestProduct.sol +37 -7
  261. package/contracts/test/TestRegisterable.sol +5 -6
  262. package/contracts/test/TestService.sol +5 -11
  263. package/contracts/types/Fee.sol +8 -3
  264. package/contracts/types/ObjectType.sol +24 -8
  265. package/contracts/types/ReferralId.sol +48 -0
  266. package/contracts/types/RiskId.sol +43 -0
  267. package/contracts/types/RoleId.sol +2 -2
  268. package/contracts/types/Version.sol +9 -0
  269. package/package.json +1 -1
  270. package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IIncrementRevert.dbg.json +0 -4
  271. package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IIncrementRevert.json +0 -27
  272. package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IncrementRevert.dbg.json +0 -4
  273. package/artifacts/contracts/experiment/errors/IncrementRevert.sol/IncrementRevert.json +0 -83
  274. package/artifacts/contracts/experiment/errors/Revert.sol/IRevert.dbg.json +0 -4
  275. package/artifacts/contracts/experiment/errors/Revert.sol/IRevert.json +0 -75
  276. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  277. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  278. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  279. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  280. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  281. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  282. package/contracts/experiment/errors/IncrementRevert.sol +0 -43
  283. package/contracts/experiment/statemachine/README.md +0 -112
  284. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  285. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  286. package/contracts/registry/IRegistryLinked.sol +0 -8
@@ -88,27 +88,9 @@
88
88
  "type": "address"
89
89
  }
90
90
  ],
91
- "name": "LogVersionableActivated",
91
+ "name": "LogVersionableInitialized",
92
92
  "type": "event"
93
93
  },
94
- {
95
- "inputs": [
96
- {
97
- "internalType": "address",
98
- "name": "implementation",
99
- "type": "address"
100
- },
101
- {
102
- "internalType": "address",
103
- "name": "activatedBy",
104
- "type": "address"
105
- }
106
- ],
107
- "name": "activate",
108
- "outputs": [],
109
- "stateMutability": "nonpayable",
110
- "type": "function"
111
- },
112
94
  {
113
95
  "inputs": [
114
96
  {
@@ -200,22 +182,34 @@
200
182
  "inputs": [
201
183
  {
202
184
  "internalType": "NftId",
203
- "name": "productNftId",
185
+ "name": "bundleNftId",
204
186
  "type": "uint96"
205
187
  },
206
188
  {
207
189
  "internalType": "NftId",
208
- "name": "policyNftId",
190
+ "name": "poolNftId",
209
191
  "type": "uint96"
210
192
  },
211
193
  {
212
- "internalType": "uint256",
213
- "name": "sumInsuredAmount",
214
- "type": "uint256"
194
+ "components": [
195
+ {
196
+ "internalType": "UFixed",
197
+ "name": "fractionalFee",
198
+ "type": "uint256"
199
+ },
200
+ {
201
+ "internalType": "uint256",
202
+ "name": "fixedFee",
203
+ "type": "uint256"
204
+ }
205
+ ],
206
+ "internalType": "struct Fee",
207
+ "name": "fee",
208
+ "type": "tuple"
215
209
  },
216
210
  {
217
211
  "internalType": "uint256",
218
- "name": "premiumAmount",
212
+ "name": "amount",
219
213
  "type": "uint256"
220
214
  },
221
215
  {
@@ -224,12 +218,12 @@
224
218
  "type": "uint256"
225
219
  },
226
220
  {
227
- "internalType": "NftId",
228
- "name": "bundleNftId",
229
- "type": "uint96"
221
+ "internalType": "bytes",
222
+ "name": "filter",
223
+ "type": "bytes"
230
224
  }
231
225
  ],
232
- "name": "createApplication",
226
+ "name": "createBundleInfo",
233
227
  "outputs": [],
234
228
  "stateMutability": "nonpayable",
235
229
  "type": "function"
@@ -238,17 +232,32 @@
238
232
  "inputs": [
239
233
  {
240
234
  "internalType": "NftId",
241
- "name": "bundleNftId",
235
+ "name": "policyNftId",
242
236
  "type": "uint96"
243
237
  },
244
238
  {
245
239
  "internalType": "NftId",
246
- "name": "poolNftId",
240
+ "name": "productNftId",
247
241
  "type": "uint96"
248
242
  },
243
+ {
244
+ "internalType": "ReferralId",
245
+ "name": "referralId",
246
+ "type": "bytes8"
247
+ },
248
+ {
249
+ "internalType": "RiskId",
250
+ "name": "riskId",
251
+ "type": "bytes8"
252
+ },
249
253
  {
250
254
  "internalType": "uint256",
251
- "name": "amount",
255
+ "name": "sumInsuredAmount",
256
+ "type": "uint256"
257
+ },
258
+ {
259
+ "internalType": "uint256",
260
+ "name": "premiumAmount",
252
261
  "type": "uint256"
253
262
  },
254
263
  {
@@ -256,13 +265,36 @@
256
265
  "name": "lifetime",
257
266
  "type": "uint256"
258
267
  },
268
+ {
269
+ "internalType": "NftId",
270
+ "name": "bundleNftId",
271
+ "type": "uint96"
272
+ }
273
+ ],
274
+ "name": "createPolicyInfo",
275
+ "outputs": [],
276
+ "stateMutability": "nonpayable",
277
+ "type": "function"
278
+ },
279
+ {
280
+ "inputs": [
281
+ {
282
+ "internalType": "RiskId",
283
+ "name": "riskId",
284
+ "type": "bytes8"
285
+ },
286
+ {
287
+ "internalType": "NftId",
288
+ "name": "productNftId",
289
+ "type": "uint96"
290
+ },
259
291
  {
260
292
  "internalType": "bytes",
261
- "name": "filter",
293
+ "name": "data",
262
294
  "type": "bytes"
263
295
  }
264
296
  ],
265
- "name": "createBundleInfo",
297
+ "name": "createRisk",
266
298
  "outputs": [],
267
299
  "stateMutability": "nonpayable",
268
300
  "type": "function"
@@ -309,7 +341,7 @@
309
341
  "inputs": [
310
342
  {
311
343
  "internalType": "NftId",
312
- "name": "bundleNftId",
344
+ "name": "nftId",
313
345
  "type": "uint96"
314
346
  }
315
347
  ],
@@ -319,13 +351,25 @@
319
351
  "components": [
320
352
  {
321
353
  "internalType": "NftId",
322
- "name": "nftId",
354
+ "name": "poolNftId",
323
355
  "type": "uint96"
324
356
  },
325
357
  {
326
- "internalType": "NftId",
327
- "name": "poolNftId",
328
- "type": "uint96"
358
+ "components": [
359
+ {
360
+ "internalType": "UFixed",
361
+ "name": "fractionalFee",
362
+ "type": "uint256"
363
+ },
364
+ {
365
+ "internalType": "uint256",
366
+ "name": "fixedFee",
367
+ "type": "uint256"
368
+ }
369
+ ],
370
+ "internalType": "struct Fee",
371
+ "name": "fee",
372
+ "type": "tuple"
329
373
  },
330
374
  {
331
375
  "internalType": "bytes",
@@ -422,6 +466,19 @@
422
466
  "stateMutability": "view",
423
467
  "type": "function"
424
468
  },
469
+ {
470
+ "inputs": [],
471
+ "name": "getComponentOwnerService",
472
+ "outputs": [
473
+ {
474
+ "internalType": "contract IComponentOwnerService",
475
+ "name": "",
476
+ "type": "address"
477
+ }
478
+ ],
479
+ "stateMutability": "view",
480
+ "type": "function"
481
+ },
425
482
  {
426
483
  "inputs": [
427
484
  {
@@ -430,41 +487,30 @@
430
487
  "type": "uint96"
431
488
  }
432
489
  ],
433
- "name": "getComponentInfo",
490
+ "name": "getComponentToken",
434
491
  "outputs": [
435
492
  {
436
- "components": [
437
- {
438
- "internalType": "NftId",
439
- "name": "nftId",
440
- "type": "uint96"
441
- },
442
- {
443
- "internalType": "StateId",
444
- "name": "state",
445
- "type": "uint8"
446
- },
447
- {
448
- "internalType": "contract IERC20Metadata",
449
- "name": "token",
450
- "type": "address"
451
- }
452
- ],
453
- "internalType": "struct IComponent.ComponentInfo",
454
- "name": "info",
455
- "type": "tuple"
493
+ "internalType": "contract IERC20Metadata",
494
+ "name": "token",
495
+ "type": "address"
456
496
  }
457
497
  ],
458
498
  "stateMutability": "view",
459
499
  "type": "function"
460
500
  },
461
501
  {
462
- "inputs": [],
463
- "name": "getComponentOwnerService",
502
+ "inputs": [
503
+ {
504
+ "internalType": "NftId",
505
+ "name": "nftId",
506
+ "type": "uint96"
507
+ }
508
+ ],
509
+ "name": "getComponentWallet",
464
510
  "outputs": [
465
511
  {
466
- "internalType": "contract IComponentOwnerService",
467
- "name": "",
512
+ "internalType": "address",
513
+ "name": "wallet",
468
514
  "type": "address"
469
515
  }
470
516
  ],
@@ -473,12 +519,12 @@
473
519
  },
474
520
  {
475
521
  "inputs": [],
476
- "name": "getData",
522
+ "name": "getDistributionService",
477
523
  "outputs": [
478
524
  {
479
- "internalType": "bytes",
480
- "name": "data",
481
- "type": "bytes"
525
+ "internalType": "contract IDistributionService",
526
+ "name": "",
527
+ "type": "address"
482
528
  }
483
529
  ],
484
530
  "stateMutability": "view",
@@ -522,12 +568,54 @@
522
568
  },
523
569
  {
524
570
  "inputs": [],
525
- "name": "getKeyValueStore",
571
+ "name": "getInitialInfo",
526
572
  "outputs": [
527
573
  {
528
- "internalType": "contract IKeyValueStore",
529
- "name": "keyValueStore",
530
- "type": "address"
574
+ "components": [
575
+ {
576
+ "internalType": "NftId",
577
+ "name": "nftId",
578
+ "type": "uint96"
579
+ },
580
+ {
581
+ "internalType": "NftId",
582
+ "name": "parentNftId",
583
+ "type": "uint96"
584
+ },
585
+ {
586
+ "internalType": "ObjectType",
587
+ "name": "objectType",
588
+ "type": "uint8"
589
+ },
590
+ {
591
+ "internalType": "bool",
592
+ "name": "isInterceptor",
593
+ "type": "bool"
594
+ },
595
+ {
596
+ "internalType": "address",
597
+ "name": "objectAddress",
598
+ "type": "address"
599
+ },
600
+ {
601
+ "internalType": "address",
602
+ "name": "initialOwner",
603
+ "type": "address"
604
+ },
605
+ {
606
+ "internalType": "bytes",
607
+ "name": "data",
608
+ "type": "bytes"
609
+ }
610
+ ],
611
+ "internalType": "struct IRegistry.ObjectInfo",
612
+ "name": "",
613
+ "type": "tuple"
614
+ },
615
+ {
616
+ "internalType": "bytes",
617
+ "name": "data",
618
+ "type": "bytes"
531
619
  }
532
620
  ],
533
621
  "stateMutability": "view",
@@ -535,12 +623,12 @@
535
623
  },
536
624
  {
537
625
  "inputs": [],
538
- "name": "getNftId",
626
+ "name": "getInitializedVersion",
539
627
  "outputs": [
540
628
  {
541
- "internalType": "NftId",
542
- "name": "nftId",
543
- "type": "uint96"
629
+ "internalType": "uint64",
630
+ "name": "",
631
+ "type": "uint64"
544
632
  }
545
633
  ],
546
634
  "stateMutability": "view",
@@ -548,11 +636,11 @@
548
636
  },
549
637
  {
550
638
  "inputs": [],
551
- "name": "getOwner",
639
+ "name": "getKeyValueStore",
552
640
  "outputs": [
553
641
  {
554
- "internalType": "address",
555
- "name": "owner",
642
+ "internalType": "contract IKeyValueStore",
643
+ "name": "keyValueStore",
556
644
  "type": "address"
557
645
  }
558
646
  ],
@@ -561,7 +649,7 @@
561
649
  },
562
650
  {
563
651
  "inputs": [],
564
- "name": "getParentNftId",
652
+ "name": "getNftId",
565
653
  "outputs": [
566
654
  {
567
655
  "internalType": "NftId",
@@ -572,6 +660,19 @@
572
660
  "stateMutability": "view",
573
661
  "type": "function"
574
662
  },
663
+ {
664
+ "inputs": [],
665
+ "name": "getOwner",
666
+ "outputs": [
667
+ {
668
+ "internalType": "address",
669
+ "name": "owner",
670
+ "type": "address"
671
+ }
672
+ ],
673
+ "stateMutability": "view",
674
+ "type": "function"
675
+ },
575
676
  {
576
677
  "inputs": [
577
678
  {
@@ -584,11 +685,6 @@
584
685
  "outputs": [
585
686
  {
586
687
  "components": [
587
- {
588
- "internalType": "NftId",
589
- "name": "nftId",
590
- "type": "uint96"
591
- },
592
688
  {
593
689
  "internalType": "NftId",
594
690
  "name": "productNftId",
@@ -599,15 +695,20 @@
599
695
  "name": "bundleNftId",
600
696
  "type": "uint96"
601
697
  },
698
+ {
699
+ "internalType": "ReferralId",
700
+ "name": "referralId",
701
+ "type": "bytes8"
702
+ },
602
703
  {
603
704
  "internalType": "address",
604
705
  "name": "beneficiary",
605
706
  "type": "address"
606
707
  },
607
708
  {
608
- "internalType": "StateId",
609
- "name": "state",
610
- "type": "uint8"
709
+ "internalType": "RiskId",
710
+ "name": "riskId",
711
+ "type": "bytes8"
611
712
  },
612
713
  {
613
714
  "internalType": "uint256",
@@ -639,11 +740,6 @@
639
740
  "name": "policyData",
640
741
  "type": "bytes"
641
742
  },
642
- {
643
- "internalType": "Timestamp",
644
- "name": "createdAt",
645
- "type": "uint40"
646
- },
647
743
  {
648
744
  "internalType": "Timestamp",
649
745
  "name": "activatedAt",
@@ -658,11 +754,6 @@
658
754
  "internalType": "Timestamp",
659
755
  "name": "closedAt",
660
756
  "type": "uint40"
661
- },
662
- {
663
- "internalType": "Blocknumber",
664
- "name": "updatedIn",
665
- "type": "uint32"
666
757
  }
667
758
  ],
668
759
  "internalType": "struct IPolicy.PolicyInfo",
@@ -685,11 +776,6 @@
685
776
  "outputs": [
686
777
  {
687
778
  "components": [
688
- {
689
- "internalType": "NftId",
690
- "name": "nftId",
691
- "type": "uint96"
692
- },
693
779
  {
694
780
  "internalType": "bool",
695
781
  "name": "isVerifying",
@@ -726,62 +812,16 @@
726
812
  "inputs": [
727
813
  {
728
814
  "internalType": "NftId",
729
- "name": "poolNftId",
815
+ "name": "componentNftId",
730
816
  "type": "uint96"
731
817
  }
732
818
  ],
733
- "name": "getPoolSetup",
819
+ "name": "getProductNftId",
734
820
  "outputs": [
735
821
  {
736
- "components": [
737
- {
738
- "internalType": "NftId",
739
- "name": "poolNftId",
740
- "type": "uint96"
741
- },
742
- {
743
- "internalType": "address",
744
- "name": "wallet",
745
- "type": "address"
746
- },
747
- {
748
- "components": [
749
- {
750
- "internalType": "UFixed",
751
- "name": "fractionalFee",
752
- "type": "uint256"
753
- },
754
- {
755
- "internalType": "uint256",
756
- "name": "fixedFee",
757
- "type": "uint256"
758
- }
759
- ],
760
- "internalType": "struct Fee",
761
- "name": "stakingFee",
762
- "type": "tuple"
763
- },
764
- {
765
- "components": [
766
- {
767
- "internalType": "UFixed",
768
- "name": "fractionalFee",
769
- "type": "uint256"
770
- },
771
- {
772
- "internalType": "uint256",
773
- "name": "fixedFee",
774
- "type": "uint256"
775
- }
776
- ],
777
- "internalType": "struct Fee",
778
- "name": "performanceFee",
779
- "type": "tuple"
780
- }
781
- ],
782
- "internalType": "struct ITreasury.PoolSetup",
783
- "name": "setup",
784
- "type": "tuple"
822
+ "internalType": "NftId",
823
+ "name": "productNftId",
824
+ "type": "uint96"
785
825
  }
786
826
  ],
787
827
  "stateMutability": "view",
@@ -800,15 +840,28 @@
800
840
  "stateMutability": "view",
801
841
  "type": "function"
802
842
  },
843
+ {
844
+ "inputs": [],
845
+ "name": "getRegistry",
846
+ "outputs": [
847
+ {
848
+ "internalType": "contract IRegistry",
849
+ "name": "registry",
850
+ "type": "address"
851
+ }
852
+ ],
853
+ "stateMutability": "view",
854
+ "type": "function"
855
+ },
803
856
  {
804
857
  "inputs": [
805
858
  {
806
- "internalType": "NftId",
807
- "name": "productNftId",
808
- "type": "uint96"
859
+ "internalType": "RiskId",
860
+ "name": "riskId",
861
+ "type": "bytes8"
809
862
  }
810
863
  ],
811
- "name": "getProductSetup",
864
+ "name": "getRiskInfo",
812
865
  "outputs": [
813
866
  {
814
867
  "components": [
@@ -818,81 +871,19 @@
818
871
  "type": "uint96"
819
872
  },
820
873
  {
821
- "internalType": "NftId",
822
- "name": "distributorNftId",
823
- "type": "uint96"
824
- },
825
- {
826
- "internalType": "NftId",
827
- "name": "poolNftId",
828
- "type": "uint96"
829
- },
830
- {
831
- "internalType": "contract IERC20Metadata",
832
- "name": "token",
833
- "type": "address"
834
- },
835
- {
836
- "internalType": "address",
837
- "name": "wallet",
838
- "type": "address"
839
- },
840
- {
841
- "components": [
842
- {
843
- "internalType": "UFixed",
844
- "name": "fractionalFee",
845
- "type": "uint256"
846
- },
847
- {
848
- "internalType": "uint256",
849
- "name": "fixedFee",
850
- "type": "uint256"
851
- }
852
- ],
853
- "internalType": "struct Fee",
854
- "name": "policyFee",
855
- "type": "tuple"
856
- },
857
- {
858
- "components": [
859
- {
860
- "internalType": "UFixed",
861
- "name": "fractionalFee",
862
- "type": "uint256"
863
- },
864
- {
865
- "internalType": "uint256",
866
- "name": "fixedFee",
867
- "type": "uint256"
868
- }
869
- ],
870
- "internalType": "struct Fee",
871
- "name": "processingFee",
872
- "type": "tuple"
874
+ "internalType": "bytes",
875
+ "name": "data",
876
+ "type": "bytes"
873
877
  }
874
878
  ],
875
- "internalType": "struct ITreasury.ProductSetup",
876
- "name": "setup",
879
+ "internalType": "struct IRisk.RiskInfo",
880
+ "name": "info",
877
881
  "type": "tuple"
878
882
  }
879
883
  ],
880
884
  "stateMutability": "view",
881
885
  "type": "function"
882
886
  },
883
- {
884
- "inputs": [],
885
- "name": "getRegistry",
886
- "outputs": [
887
- {
888
- "internalType": "contract IRegistry",
889
- "name": "registry",
890
- "type": "address"
891
- }
892
- ],
893
- "stateMutability": "view",
894
- "type": "function"
895
- },
896
887
  {
897
888
  "inputs": [
898
889
  {
@@ -1026,118 +1017,36 @@
1026
1017
  {
1027
1018
  "inputs": [
1028
1019
  {
1029
- "internalType": "NftId",
1030
- "name": "componentNftId",
1031
- "type": "uint96"
1032
- }
1033
- ],
1034
- "name": "getTokenHandler",
1035
- "outputs": [
1036
- {
1037
- "internalType": "contract TokenHandler",
1038
- "name": "tokenHandler",
1039
- "type": "address"
1020
+ "internalType": "Key32",
1021
+ "name": "key",
1022
+ "type": "bytes32"
1040
1023
  }
1041
1024
  ],
1042
- "stateMutability": "view",
1043
- "type": "function"
1044
- },
1045
- {
1046
- "inputs": [],
1047
- "name": "getType",
1025
+ "name": "getState",
1048
1026
  "outputs": [
1049
1027
  {
1050
- "internalType": "ObjectType",
1051
- "name": "objectType",
1028
+ "internalType": "StateId",
1029
+ "name": "state",
1052
1030
  "type": "uint8"
1053
1031
  }
1054
1032
  ],
1055
- "stateMutability": "pure",
1056
- "type": "function"
1057
- },
1058
- {
1059
- "inputs": [
1060
- {
1061
- "internalType": "uint256",
1062
- "name": "a",
1063
- "type": "uint256"
1064
- },
1065
- {
1066
- "internalType": "int8",
1067
- "name": "exp",
1068
- "type": "int8"
1069
- }
1070
- ],
1071
- "name": "getUFixed",
1072
- "outputs": [
1073
- {
1074
- "internalType": "UFixed",
1075
- "name": "",
1076
- "type": "uint256"
1077
- }
1078
- ],
1079
- "stateMutability": "pure",
1080
- "type": "function"
1081
- },
1082
- {
1083
- "inputs": [
1084
- {
1085
- "internalType": "uint256",
1086
- "name": "a",
1087
- "type": "uint256"
1088
- }
1089
- ],
1090
- "name": "getUFixed",
1091
- "outputs": [
1092
- {
1093
- "internalType": "UFixed",
1094
- "name": "",
1095
- "type": "uint256"
1096
- }
1097
- ],
1098
- "stateMutability": "pure",
1099
- "type": "function"
1100
- },
1101
- {
1102
- "inputs": [],
1103
- "name": "getVersion",
1104
- "outputs": [
1105
- {
1106
- "internalType": "Version",
1107
- "name": "",
1108
- "type": "uint24"
1109
- }
1110
- ],
1111
- "stateMutability": "pure",
1033
+ "stateMutability": "view",
1112
1034
  "type": "function"
1113
1035
  },
1114
1036
  {
1115
1037
  "inputs": [
1116
1038
  {
1117
- "internalType": "uint256",
1118
- "name": "index",
1119
- "type": "uint256"
1120
- }
1121
- ],
1122
- "name": "getVersion",
1123
- "outputs": [
1124
- {
1125
- "internalType": "Version",
1126
- "name": "version",
1127
- "type": "uint24"
1039
+ "internalType": "NftId",
1040
+ "name": "componentNftId",
1041
+ "type": "uint96"
1128
1042
  }
1129
1043
  ],
1130
- "stateMutability": "view",
1131
- "type": "function"
1132
- },
1133
- {
1134
- "inputs": [],
1135
- "name": "getVersionCount",
1044
+ "name": "getTokenHandler",
1136
1045
  "outputs": [
1137
1046
  {
1138
- "internalType": "uint256",
1139
- "name": "numberOfVersions",
1140
- "type": "uint256"
1047
+ "internalType": "contract TokenHandler",
1048
+ "name": "tokenHandler",
1049
+ "type": "address"
1141
1050
  }
1142
1051
  ],
1143
1052
  "stateMutability": "view",
@@ -1146,34 +1055,260 @@
1146
1055
  {
1147
1056
  "inputs": [
1148
1057
  {
1149
- "internalType": "Version",
1150
- "name": "version",
1151
- "type": "uint24"
1058
+ "internalType": "NftId",
1059
+ "name": "productNftId",
1060
+ "type": "uint96"
1152
1061
  }
1153
1062
  ],
1154
- "name": "getVersionInfo",
1063
+ "name": "getTreasuryInfo",
1155
1064
  "outputs": [
1156
1065
  {
1157
1066
  "components": [
1158
1067
  {
1159
- "internalType": "Version",
1160
- "name": "version",
1161
- "type": "uint24"
1068
+ "internalType": "NftId",
1069
+ "name": "poolNftId",
1070
+ "type": "uint96"
1162
1071
  },
1163
1072
  {
1164
- "internalType": "address",
1165
- "name": "implementation",
1166
- "type": "address"
1073
+ "internalType": "NftId",
1074
+ "name": "distributionNftId",
1075
+ "type": "uint96"
1167
1076
  },
1168
1077
  {
1169
- "internalType": "address",
1170
- "name": "activatedBy",
1078
+ "internalType": "contract IERC20Metadata",
1079
+ "name": "token",
1171
1080
  "type": "address"
1172
1081
  },
1173
1082
  {
1174
- "internalType": "Timestamp",
1175
- "name": "activatedAt",
1176
- "type": "uint40"
1083
+ "components": [
1084
+ {
1085
+ "internalType": "UFixed",
1086
+ "name": "fractionalFee",
1087
+ "type": "uint256"
1088
+ },
1089
+ {
1090
+ "internalType": "uint256",
1091
+ "name": "fixedFee",
1092
+ "type": "uint256"
1093
+ }
1094
+ ],
1095
+ "internalType": "struct Fee",
1096
+ "name": "productFee",
1097
+ "type": "tuple"
1098
+ },
1099
+ {
1100
+ "components": [
1101
+ {
1102
+ "internalType": "UFixed",
1103
+ "name": "fractionalFee",
1104
+ "type": "uint256"
1105
+ },
1106
+ {
1107
+ "internalType": "uint256",
1108
+ "name": "fixedFee",
1109
+ "type": "uint256"
1110
+ }
1111
+ ],
1112
+ "internalType": "struct Fee",
1113
+ "name": "processingFee",
1114
+ "type": "tuple"
1115
+ },
1116
+ {
1117
+ "components": [
1118
+ {
1119
+ "internalType": "UFixed",
1120
+ "name": "fractionalFee",
1121
+ "type": "uint256"
1122
+ },
1123
+ {
1124
+ "internalType": "uint256",
1125
+ "name": "fixedFee",
1126
+ "type": "uint256"
1127
+ }
1128
+ ],
1129
+ "internalType": "struct Fee",
1130
+ "name": "poolFee",
1131
+ "type": "tuple"
1132
+ },
1133
+ {
1134
+ "components": [
1135
+ {
1136
+ "internalType": "UFixed",
1137
+ "name": "fractionalFee",
1138
+ "type": "uint256"
1139
+ },
1140
+ {
1141
+ "internalType": "uint256",
1142
+ "name": "fixedFee",
1143
+ "type": "uint256"
1144
+ }
1145
+ ],
1146
+ "internalType": "struct Fee",
1147
+ "name": "stakingFee",
1148
+ "type": "tuple"
1149
+ },
1150
+ {
1151
+ "components": [
1152
+ {
1153
+ "internalType": "UFixed",
1154
+ "name": "fractionalFee",
1155
+ "type": "uint256"
1156
+ },
1157
+ {
1158
+ "internalType": "uint256",
1159
+ "name": "fixedFee",
1160
+ "type": "uint256"
1161
+ }
1162
+ ],
1163
+ "internalType": "struct Fee",
1164
+ "name": "performanceFee",
1165
+ "type": "tuple"
1166
+ },
1167
+ {
1168
+ "components": [
1169
+ {
1170
+ "internalType": "UFixed",
1171
+ "name": "fractionalFee",
1172
+ "type": "uint256"
1173
+ },
1174
+ {
1175
+ "internalType": "uint256",
1176
+ "name": "fixedFee",
1177
+ "type": "uint256"
1178
+ }
1179
+ ],
1180
+ "internalType": "struct Fee",
1181
+ "name": "distributionFee",
1182
+ "type": "tuple"
1183
+ }
1184
+ ],
1185
+ "internalType": "struct ITreasury.TreasuryInfo",
1186
+ "name": "info",
1187
+ "type": "tuple"
1188
+ }
1189
+ ],
1190
+ "stateMutability": "view",
1191
+ "type": "function"
1192
+ },
1193
+ {
1194
+ "inputs": [
1195
+ {
1196
+ "internalType": "uint256",
1197
+ "name": "a",
1198
+ "type": "uint256"
1199
+ },
1200
+ {
1201
+ "internalType": "int8",
1202
+ "name": "exp",
1203
+ "type": "int8"
1204
+ }
1205
+ ],
1206
+ "name": "getUFixed",
1207
+ "outputs": [
1208
+ {
1209
+ "internalType": "UFixed",
1210
+ "name": "",
1211
+ "type": "uint256"
1212
+ }
1213
+ ],
1214
+ "stateMutability": "pure",
1215
+ "type": "function"
1216
+ },
1217
+ {
1218
+ "inputs": [
1219
+ {
1220
+ "internalType": "uint256",
1221
+ "name": "a",
1222
+ "type": "uint256"
1223
+ }
1224
+ ],
1225
+ "name": "getUFixed",
1226
+ "outputs": [
1227
+ {
1228
+ "internalType": "UFixed",
1229
+ "name": "",
1230
+ "type": "uint256"
1231
+ }
1232
+ ],
1233
+ "stateMutability": "pure",
1234
+ "type": "function"
1235
+ },
1236
+ {
1237
+ "inputs": [],
1238
+ "name": "getVersion",
1239
+ "outputs": [
1240
+ {
1241
+ "internalType": "Version",
1242
+ "name": "",
1243
+ "type": "uint24"
1244
+ }
1245
+ ],
1246
+ "stateMutability": "pure",
1247
+ "type": "function"
1248
+ },
1249
+ {
1250
+ "inputs": [
1251
+ {
1252
+ "internalType": "uint256",
1253
+ "name": "index",
1254
+ "type": "uint256"
1255
+ }
1256
+ ],
1257
+ "name": "getVersion",
1258
+ "outputs": [
1259
+ {
1260
+ "internalType": "Version",
1261
+ "name": "version",
1262
+ "type": "uint24"
1263
+ }
1264
+ ],
1265
+ "stateMutability": "view",
1266
+ "type": "function"
1267
+ },
1268
+ {
1269
+ "inputs": [],
1270
+ "name": "getVersionCount",
1271
+ "outputs": [
1272
+ {
1273
+ "internalType": "uint256",
1274
+ "name": "numberOfVersions",
1275
+ "type": "uint256"
1276
+ }
1277
+ ],
1278
+ "stateMutability": "view",
1279
+ "type": "function"
1280
+ },
1281
+ {
1282
+ "inputs": [
1283
+ {
1284
+ "internalType": "Version",
1285
+ "name": "version",
1286
+ "type": "uint24"
1287
+ }
1288
+ ],
1289
+ "name": "getVersionInfo",
1290
+ "outputs": [
1291
+ {
1292
+ "components": [
1293
+ {
1294
+ "internalType": "Version",
1295
+ "name": "version",
1296
+ "type": "uint24"
1297
+ },
1298
+ {
1299
+ "internalType": "address",
1300
+ "name": "implementation",
1301
+ "type": "address"
1302
+ },
1303
+ {
1304
+ "internalType": "address",
1305
+ "name": "activatedBy",
1306
+ "type": "address"
1307
+ },
1308
+ {
1309
+ "internalType": "Timestamp",
1310
+ "name": "activatedAt",
1311
+ "type": "uint40"
1177
1312
  },
1178
1313
  {
1179
1314
  "internalType": "Blocknumber",
@@ -1211,7 +1346,7 @@
1211
1346
  "type": "tuple"
1212
1347
  }
1213
1348
  ],
1214
- "stateMutability": "pure",
1349
+ "stateMutability": "view",
1215
1350
  "type": "function"
1216
1351
  },
1217
1352
  {
@@ -1249,7 +1384,7 @@
1249
1384
  "outputs": [
1250
1385
  {
1251
1386
  "internalType": "bool",
1252
- "name": "hasRole",
1387
+ "name": "",
1253
1388
  "type": "bool"
1254
1389
  }
1255
1390
  ],
@@ -1259,16 +1394,16 @@
1259
1394
  {
1260
1395
  "inputs": [
1261
1396
  {
1262
- "internalType": "Version",
1263
- "name": "version",
1264
- "type": "uint24"
1397
+ "internalType": "NftId",
1398
+ "name": "productNftId",
1399
+ "type": "uint96"
1265
1400
  }
1266
1401
  ],
1267
- "name": "isActivated",
1402
+ "name": "hasTreasuryInfo",
1268
1403
  "outputs": [
1269
1404
  {
1270
1405
  "internalType": "bool",
1271
- "name": "",
1406
+ "name": "hasInfo",
1272
1407
  "type": "bool"
1273
1408
  }
1274
1409
  ],
@@ -1276,34 +1411,63 @@
1276
1411
  "type": "function"
1277
1412
  },
1278
1413
  {
1279
- "inputs": [],
1280
- "name": "register",
1281
- "outputs": [
1414
+ "inputs": [
1282
1415
  {
1283
- "internalType": "NftId",
1284
- "name": "nftId",
1285
- "type": "uint96"
1416
+ "internalType": "address",
1417
+ "name": "implementation",
1418
+ "type": "address"
1419
+ },
1420
+ {
1421
+ "internalType": "address",
1422
+ "name": "activatedBy",
1423
+ "type": "address"
1424
+ },
1425
+ {
1426
+ "internalType": "bytes",
1427
+ "name": "activationData",
1428
+ "type": "bytes"
1286
1429
  }
1287
1430
  ],
1431
+ "name": "initialize",
1432
+ "outputs": [],
1288
1433
  "stateMutability": "nonpayable",
1289
1434
  "type": "function"
1290
1435
  },
1291
1436
  {
1292
1437
  "inputs": [
1293
1438
  {
1294
- "internalType": "NftId",
1295
- "name": "nftId",
1296
- "type": "uint96"
1297
- },
1439
+ "internalType": "Version",
1440
+ "name": "version",
1441
+ "type": "uint24"
1442
+ }
1443
+ ],
1444
+ "name": "isInitialized",
1445
+ "outputs": [
1298
1446
  {
1299
- "internalType": "ObjectType",
1300
- "name": "objectType",
1301
- "type": "uint8"
1447
+ "internalType": "bool",
1448
+ "name": "",
1449
+ "type": "bool"
1450
+ }
1451
+ ],
1452
+ "stateMutability": "view",
1453
+ "type": "function"
1454
+ },
1455
+ {
1456
+ "inputs": [
1457
+ {
1458
+ "internalType": "NftId",
1459
+ "name": "nftId",
1460
+ "type": "uint96"
1302
1461
  },
1303
1462
  {
1304
1463
  "internalType": "contract IERC20Metadata",
1305
1464
  "name": "token",
1306
1465
  "type": "address"
1466
+ },
1467
+ {
1468
+ "internalType": "address",
1469
+ "name": "wallet",
1470
+ "type": "address"
1307
1471
  }
1308
1472
  ],
1309
1473
  "name": "registerComponent",
@@ -1315,46 +1479,24 @@
1315
1479
  "inputs": [
1316
1480
  {
1317
1481
  "internalType": "NftId",
1318
- "name": "poolNftId",
1482
+ "name": "nftId",
1319
1483
  "type": "uint96"
1320
1484
  },
1321
- {
1322
- "internalType": "address",
1323
- "name": "wallet",
1324
- "type": "address"
1325
- },
1326
1485
  {
1327
1486
  "components": [
1328
1487
  {
1329
- "internalType": "UFixed",
1330
- "name": "fractionalFee",
1331
- "type": "uint256"
1488
+ "internalType": "bool",
1489
+ "name": "isVerifying",
1490
+ "type": "bool"
1332
1491
  },
1333
- {
1334
- "internalType": "uint256",
1335
- "name": "fixedFee",
1336
- "type": "uint256"
1337
- }
1338
- ],
1339
- "internalType": "struct Fee",
1340
- "name": "stakingFee",
1341
- "type": "tuple"
1342
- },
1343
- {
1344
- "components": [
1345
1492
  {
1346
1493
  "internalType": "UFixed",
1347
- "name": "fractionalFee",
1348
- "type": "uint256"
1349
- },
1350
- {
1351
- "internalType": "uint256",
1352
- "name": "fixedFee",
1494
+ "name": "collateralizationLevel",
1353
1495
  "type": "uint256"
1354
1496
  }
1355
1497
  ],
1356
- "internalType": "struct Fee",
1357
- "name": "performanceFee",
1498
+ "internalType": "struct IPool.PoolInfo",
1499
+ "name": "info",
1358
1500
  "type": "tuple"
1359
1501
  }
1360
1502
  ],
@@ -1363,29 +1505,6 @@
1363
1505
  "stateMutability": "nonpayable",
1364
1506
  "type": "function"
1365
1507
  },
1366
- {
1367
- "inputs": [
1368
- {
1369
- "internalType": "NftId",
1370
- "name": "poolNftId",
1371
- "type": "uint96"
1372
- },
1373
- {
1374
- "internalType": "bool",
1375
- "name": "isVerifying",
1376
- "type": "bool"
1377
- },
1378
- {
1379
- "internalType": "UFixed",
1380
- "name": "collateralizationLevel",
1381
- "type": "uint256"
1382
- }
1383
- ],
1384
- "name": "registerPool",
1385
- "outputs": [],
1386
- "stateMutability": "nonpayable",
1387
- "type": "function"
1388
- },
1389
1508
  {
1390
1509
  "inputs": [
1391
1510
  {
@@ -1393,62 +1512,132 @@
1393
1512
  "name": "productNftId",
1394
1513
  "type": "uint96"
1395
1514
  },
1396
- {
1397
- "internalType": "NftId",
1398
- "name": "distributorNftId",
1399
- "type": "uint96"
1400
- },
1401
- {
1402
- "internalType": "NftId",
1403
- "name": "poolNftId",
1404
- "type": "uint96"
1405
- },
1406
- {
1407
- "internalType": "contract IERC20Metadata",
1408
- "name": "token",
1409
- "type": "address"
1410
- },
1411
- {
1412
- "internalType": "address",
1413
- "name": "wallet",
1414
- "type": "address"
1415
- },
1416
1515
  {
1417
1516
  "components": [
1418
1517
  {
1419
- "internalType": "UFixed",
1420
- "name": "fractionalFee",
1421
- "type": "uint256"
1518
+ "internalType": "NftId",
1519
+ "name": "poolNftId",
1520
+ "type": "uint96"
1422
1521
  },
1423
1522
  {
1424
- "internalType": "uint256",
1425
- "name": "fixedFee",
1426
- "type": "uint256"
1427
- }
1428
- ],
1429
- "internalType": "struct Fee",
1430
- "name": "policyFee",
1431
- "type": "tuple"
1432
- },
1433
- {
1434
- "components": [
1523
+ "internalType": "NftId",
1524
+ "name": "distributionNftId",
1525
+ "type": "uint96"
1526
+ },
1435
1527
  {
1436
- "internalType": "UFixed",
1437
- "name": "fractionalFee",
1438
- "type": "uint256"
1528
+ "internalType": "contract IERC20Metadata",
1529
+ "name": "token",
1530
+ "type": "address"
1439
1531
  },
1440
1532
  {
1441
- "internalType": "uint256",
1442
- "name": "fixedFee",
1443
- "type": "uint256"
1533
+ "components": [
1534
+ {
1535
+ "internalType": "UFixed",
1536
+ "name": "fractionalFee",
1537
+ "type": "uint256"
1538
+ },
1539
+ {
1540
+ "internalType": "uint256",
1541
+ "name": "fixedFee",
1542
+ "type": "uint256"
1543
+ }
1544
+ ],
1545
+ "internalType": "struct Fee",
1546
+ "name": "productFee",
1547
+ "type": "tuple"
1548
+ },
1549
+ {
1550
+ "components": [
1551
+ {
1552
+ "internalType": "UFixed",
1553
+ "name": "fractionalFee",
1554
+ "type": "uint256"
1555
+ },
1556
+ {
1557
+ "internalType": "uint256",
1558
+ "name": "fixedFee",
1559
+ "type": "uint256"
1560
+ }
1561
+ ],
1562
+ "internalType": "struct Fee",
1563
+ "name": "processingFee",
1564
+ "type": "tuple"
1565
+ },
1566
+ {
1567
+ "components": [
1568
+ {
1569
+ "internalType": "UFixed",
1570
+ "name": "fractionalFee",
1571
+ "type": "uint256"
1572
+ },
1573
+ {
1574
+ "internalType": "uint256",
1575
+ "name": "fixedFee",
1576
+ "type": "uint256"
1577
+ }
1578
+ ],
1579
+ "internalType": "struct Fee",
1580
+ "name": "poolFee",
1581
+ "type": "tuple"
1582
+ },
1583
+ {
1584
+ "components": [
1585
+ {
1586
+ "internalType": "UFixed",
1587
+ "name": "fractionalFee",
1588
+ "type": "uint256"
1589
+ },
1590
+ {
1591
+ "internalType": "uint256",
1592
+ "name": "fixedFee",
1593
+ "type": "uint256"
1594
+ }
1595
+ ],
1596
+ "internalType": "struct Fee",
1597
+ "name": "stakingFee",
1598
+ "type": "tuple"
1599
+ },
1600
+ {
1601
+ "components": [
1602
+ {
1603
+ "internalType": "UFixed",
1604
+ "name": "fractionalFee",
1605
+ "type": "uint256"
1606
+ },
1607
+ {
1608
+ "internalType": "uint256",
1609
+ "name": "fixedFee",
1610
+ "type": "uint256"
1611
+ }
1612
+ ],
1613
+ "internalType": "struct Fee",
1614
+ "name": "performanceFee",
1615
+ "type": "tuple"
1616
+ },
1617
+ {
1618
+ "components": [
1619
+ {
1620
+ "internalType": "UFixed",
1621
+ "name": "fractionalFee",
1622
+ "type": "uint256"
1623
+ },
1624
+ {
1625
+ "internalType": "uint256",
1626
+ "name": "fixedFee",
1627
+ "type": "uint256"
1628
+ }
1629
+ ],
1630
+ "internalType": "struct Fee",
1631
+ "name": "distributionFee",
1632
+ "type": "tuple"
1444
1633
  }
1445
1634
  ],
1446
- "internalType": "struct Fee",
1447
- "name": "processingFee",
1635
+ "internalType": "struct ITreasury.TreasuryInfo",
1636
+ "name": "info",
1448
1637
  "type": "tuple"
1449
1638
  }
1450
1639
  ],
1451
- "name": "registerProduct",
1640
+ "name": "registerProductSetup",
1452
1641
  "outputs": [],
1453
1642
  "stateMutability": "nonpayable",
1454
1643
  "type": "function"
@@ -1516,17 +1705,34 @@
1516
1705
  },
1517
1706
  {
1518
1707
  "inputs": [
1708
+ {
1709
+ "internalType": "NftId",
1710
+ "name": "nftId",
1711
+ "type": "uint96"
1712
+ },
1519
1713
  {
1520
1714
  "components": [
1521
1715
  {
1522
1716
  "internalType": "NftId",
1523
- "name": "nftId",
1717
+ "name": "poolNftId",
1524
1718
  "type": "uint96"
1525
1719
  },
1526
1720
  {
1527
- "internalType": "NftId",
1528
- "name": "poolNftId",
1529
- "type": "uint96"
1721
+ "components": [
1722
+ {
1723
+ "internalType": "UFixed",
1724
+ "name": "fractionalFee",
1725
+ "type": "uint256"
1726
+ },
1727
+ {
1728
+ "internalType": "uint256",
1729
+ "name": "fixedFee",
1730
+ "type": "uint256"
1731
+ }
1732
+ ],
1733
+ "internalType": "struct Fee",
1734
+ "name": "fee",
1735
+ "type": "tuple"
1530
1736
  },
1531
1737
  {
1532
1738
  "internalType": "bytes",
@@ -1571,49 +1777,13 @@
1571
1777
  },
1572
1778
  {
1573
1779
  "inputs": [
1574
- {
1575
- "components": [
1576
- {
1577
- "internalType": "NftId",
1578
- "name": "nftId",
1579
- "type": "uint96"
1580
- },
1581
- {
1582
- "internalType": "StateId",
1583
- "name": "state",
1584
- "type": "uint8"
1585
- },
1586
- {
1587
- "internalType": "contract IERC20Metadata",
1588
- "name": "token",
1589
- "type": "address"
1590
- }
1591
- ],
1592
- "internalType": "struct IComponent.ComponentInfo",
1593
- "name": "info",
1594
- "type": "tuple"
1595
- }
1596
- ],
1597
- "name": "setComponentInfo",
1598
- "outputs": [
1599
1780
  {
1600
1781
  "internalType": "NftId",
1601
- "name": "componentNftId",
1782
+ "name": "policyNftId",
1602
1783
  "type": "uint96"
1603
- }
1604
- ],
1605
- "stateMutability": "nonpayable",
1606
- "type": "function"
1607
- },
1608
- {
1609
- "inputs": [
1784
+ },
1610
1785
  {
1611
1786
  "components": [
1612
- {
1613
- "internalType": "NftId",
1614
- "name": "nftId",
1615
- "type": "uint96"
1616
- },
1617
1787
  {
1618
1788
  "internalType": "NftId",
1619
1789
  "name": "productNftId",
@@ -1624,15 +1794,20 @@
1624
1794
  "name": "bundleNftId",
1625
1795
  "type": "uint96"
1626
1796
  },
1797
+ {
1798
+ "internalType": "ReferralId",
1799
+ "name": "referralId",
1800
+ "type": "bytes8"
1801
+ },
1627
1802
  {
1628
1803
  "internalType": "address",
1629
1804
  "name": "beneficiary",
1630
1805
  "type": "address"
1631
1806
  },
1632
1807
  {
1633
- "internalType": "StateId",
1634
- "name": "state",
1635
- "type": "uint8"
1808
+ "internalType": "RiskId",
1809
+ "name": "riskId",
1810
+ "type": "bytes8"
1636
1811
  },
1637
1812
  {
1638
1813
  "internalType": "uint256",
@@ -1664,11 +1839,6 @@
1664
1839
  "name": "policyData",
1665
1840
  "type": "bytes"
1666
1841
  },
1667
- {
1668
- "internalType": "Timestamp",
1669
- "name": "createdAt",
1670
- "type": "uint40"
1671
- },
1672
1842
  {
1673
1843
  "internalType": "Timestamp",
1674
1844
  "name": "activatedAt",
@@ -1683,15 +1853,10 @@
1683
1853
  "internalType": "Timestamp",
1684
1854
  "name": "closedAt",
1685
1855
  "type": "uint40"
1686
- },
1687
- {
1688
- "internalType": "Blocknumber",
1689
- "name": "updatedIn",
1690
- "type": "uint32"
1691
1856
  }
1692
1857
  ],
1693
1858
  "internalType": "struct IPolicy.PolicyInfo",
1694
- "name": "policyInfo",
1859
+ "name": "info",
1695
1860
  "type": "tuple"
1696
1861
  }
1697
1862
  ],
@@ -1703,46 +1868,47 @@
1703
1868
  {
1704
1869
  "inputs": [
1705
1870
  {
1706
- "internalType": "NftId",
1707
- "name": "poolNftId",
1708
- "type": "uint96"
1871
+ "internalType": "RiskId",
1872
+ "name": "riskId",
1873
+ "type": "bytes8"
1709
1874
  },
1710
1875
  {
1711
1876
  "components": [
1712
1877
  {
1713
- "internalType": "UFixed",
1714
- "name": "fractionalFee",
1715
- "type": "uint256"
1878
+ "internalType": "NftId",
1879
+ "name": "productNftId",
1880
+ "type": "uint96"
1716
1881
  },
1717
1882
  {
1718
- "internalType": "uint256",
1719
- "name": "fixedFee",
1720
- "type": "uint256"
1883
+ "internalType": "bytes",
1884
+ "name": "data",
1885
+ "type": "bytes"
1721
1886
  }
1722
1887
  ],
1723
- "internalType": "struct Fee",
1724
- "name": "stakingFee",
1888
+ "internalType": "struct IRisk.RiskInfo",
1889
+ "name": "info",
1725
1890
  "type": "tuple"
1891
+ }
1892
+ ],
1893
+ "name": "setRiskInfo",
1894
+ "outputs": [],
1895
+ "stateMutability": "nonpayable",
1896
+ "type": "function"
1897
+ },
1898
+ {
1899
+ "inputs": [
1900
+ {
1901
+ "internalType": "RoleId",
1902
+ "name": "role",
1903
+ "type": "bytes8"
1726
1904
  },
1727
1905
  {
1728
- "components": [
1729
- {
1730
- "internalType": "UFixed",
1731
- "name": "fractionalFee",
1732
- "type": "uint256"
1733
- },
1734
- {
1735
- "internalType": "uint256",
1736
- "name": "fixedFee",
1737
- "type": "uint256"
1738
- }
1739
- ],
1740
- "internalType": "struct Fee",
1741
- "name": "performanceFee",
1742
- "type": "tuple"
1906
+ "internalType": "bool",
1907
+ "name": "active",
1908
+ "type": "bool"
1743
1909
  }
1744
1910
  ],
1745
- "name": "setPoolFees",
1911
+ "name": "setRoleState",
1746
1912
  "outputs": [],
1747
1913
  "stateMutability": "nonpayable",
1748
1914
  "type": "function"
@@ -1757,57 +1923,129 @@
1757
1923
  {
1758
1924
  "components": [
1759
1925
  {
1760
- "internalType": "UFixed",
1761
- "name": "fractionalFee",
1762
- "type": "uint256"
1926
+ "internalType": "NftId",
1927
+ "name": "poolNftId",
1928
+ "type": "uint96"
1763
1929
  },
1764
1930
  {
1765
- "internalType": "uint256",
1766
- "name": "fixedFee",
1767
- "type": "uint256"
1768
- }
1769
- ],
1770
- "internalType": "struct Fee",
1771
- "name": "policyFee",
1772
- "type": "tuple"
1773
- },
1774
- {
1775
- "components": [
1931
+ "internalType": "NftId",
1932
+ "name": "distributionNftId",
1933
+ "type": "uint96"
1934
+ },
1776
1935
  {
1777
- "internalType": "UFixed",
1778
- "name": "fractionalFee",
1779
- "type": "uint256"
1936
+ "internalType": "contract IERC20Metadata",
1937
+ "name": "token",
1938
+ "type": "address"
1780
1939
  },
1781
1940
  {
1782
- "internalType": "uint256",
1783
- "name": "fixedFee",
1784
- "type": "uint256"
1941
+ "components": [
1942
+ {
1943
+ "internalType": "UFixed",
1944
+ "name": "fractionalFee",
1945
+ "type": "uint256"
1946
+ },
1947
+ {
1948
+ "internalType": "uint256",
1949
+ "name": "fixedFee",
1950
+ "type": "uint256"
1951
+ }
1952
+ ],
1953
+ "internalType": "struct Fee",
1954
+ "name": "productFee",
1955
+ "type": "tuple"
1956
+ },
1957
+ {
1958
+ "components": [
1959
+ {
1960
+ "internalType": "UFixed",
1961
+ "name": "fractionalFee",
1962
+ "type": "uint256"
1963
+ },
1964
+ {
1965
+ "internalType": "uint256",
1966
+ "name": "fixedFee",
1967
+ "type": "uint256"
1968
+ }
1969
+ ],
1970
+ "internalType": "struct Fee",
1971
+ "name": "processingFee",
1972
+ "type": "tuple"
1973
+ },
1974
+ {
1975
+ "components": [
1976
+ {
1977
+ "internalType": "UFixed",
1978
+ "name": "fractionalFee",
1979
+ "type": "uint256"
1980
+ },
1981
+ {
1982
+ "internalType": "uint256",
1983
+ "name": "fixedFee",
1984
+ "type": "uint256"
1985
+ }
1986
+ ],
1987
+ "internalType": "struct Fee",
1988
+ "name": "poolFee",
1989
+ "type": "tuple"
1990
+ },
1991
+ {
1992
+ "components": [
1993
+ {
1994
+ "internalType": "UFixed",
1995
+ "name": "fractionalFee",
1996
+ "type": "uint256"
1997
+ },
1998
+ {
1999
+ "internalType": "uint256",
2000
+ "name": "fixedFee",
2001
+ "type": "uint256"
2002
+ }
2003
+ ],
2004
+ "internalType": "struct Fee",
2005
+ "name": "stakingFee",
2006
+ "type": "tuple"
2007
+ },
2008
+ {
2009
+ "components": [
2010
+ {
2011
+ "internalType": "UFixed",
2012
+ "name": "fractionalFee",
2013
+ "type": "uint256"
2014
+ },
2015
+ {
2016
+ "internalType": "uint256",
2017
+ "name": "fixedFee",
2018
+ "type": "uint256"
2019
+ }
2020
+ ],
2021
+ "internalType": "struct Fee",
2022
+ "name": "performanceFee",
2023
+ "type": "tuple"
2024
+ },
2025
+ {
2026
+ "components": [
2027
+ {
2028
+ "internalType": "UFixed",
2029
+ "name": "fractionalFee",
2030
+ "type": "uint256"
2031
+ },
2032
+ {
2033
+ "internalType": "uint256",
2034
+ "name": "fixedFee",
2035
+ "type": "uint256"
2036
+ }
2037
+ ],
2038
+ "internalType": "struct Fee",
2039
+ "name": "distributionFee",
2040
+ "type": "tuple"
1785
2041
  }
1786
2042
  ],
1787
- "internalType": "struct Fee",
1788
- "name": "processingFee",
2043
+ "internalType": "struct ITreasury.TreasuryInfo",
2044
+ "name": "info",
1789
2045
  "type": "tuple"
1790
2046
  }
1791
2047
  ],
1792
- "name": "setProductFees",
1793
- "outputs": [],
1794
- "stateMutability": "nonpayable",
1795
- "type": "function"
1796
- },
1797
- {
1798
- "inputs": [
1799
- {
1800
- "internalType": "RoleId",
1801
- "name": "role",
1802
- "type": "bytes8"
1803
- },
1804
- {
1805
- "internalType": "bool",
1806
- "name": "active",
1807
- "type": "bool"
1808
- }
1809
- ],
1810
- "name": "setRoleState",
2048
+ "name": "setTreasuryInfo",
1811
2049
  "outputs": [],
1812
2050
  "stateMutability": "nonpayable",
1813
2051
  "type": "function"
@@ -1835,26 +2073,25 @@
1835
2073
  "inputs": [
1836
2074
  {
1837
2075
  "internalType": "NftId",
1838
- "name": "bundleNftId",
2076
+ "name": "nftId",
1839
2077
  "type": "uint96"
1840
- }
1841
- ],
1842
- "name": "toBundleKey32",
1843
- "outputs": [
2078
+ },
1844
2079
  {
1845
- "internalType": "Key32",
1846
- "name": "key32",
1847
- "type": "bytes32"
2080
+ "internalType": "StateId",
2081
+ "name": "state",
2082
+ "type": "uint8"
1848
2083
  }
1849
2084
  ],
1850
- "stateMutability": "view",
2085
+ "name": "updateBundleState",
2086
+ "outputs": [],
2087
+ "stateMutability": "nonpayable",
1851
2088
  "type": "function"
1852
2089
  },
1853
2090
  {
1854
2091
  "inputs": [
1855
2092
  {
1856
2093
  "internalType": "NftId",
1857
- "name": "bundleNftId",
2094
+ "name": "nftId",
1858
2095
  "type": "uint96"
1859
2096
  },
1860
2097
  {
@@ -1863,7 +2100,66 @@
1863
2100
  "type": "uint8"
1864
2101
  }
1865
2102
  ],
1866
- "name": "updateBundleState",
2103
+ "name": "updatePolicyState",
2104
+ "outputs": [],
2105
+ "stateMutability": "nonpayable",
2106
+ "type": "function"
2107
+ },
2108
+ {
2109
+ "inputs": [
2110
+ {
2111
+ "internalType": "RiskId",
2112
+ "name": "riskId",
2113
+ "type": "bytes8"
2114
+ },
2115
+ {
2116
+ "internalType": "StateId",
2117
+ "name": "state",
2118
+ "type": "uint8"
2119
+ }
2120
+ ],
2121
+ "name": "updateRiskState",
2122
+ "outputs": [],
2123
+ "stateMutability": "nonpayable",
2124
+ "type": "function"
2125
+ },
2126
+ {
2127
+ "inputs": [
2128
+ {
2129
+ "internalType": "Key32",
2130
+ "name": "key",
2131
+ "type": "bytes32"
2132
+ },
2133
+ {
2134
+ "internalType": "StateId",
2135
+ "name": "state",
2136
+ "type": "uint8"
2137
+ }
2138
+ ],
2139
+ "name": "updateState",
2140
+ "outputs": [],
2141
+ "stateMutability": "nonpayable",
2142
+ "type": "function"
2143
+ },
2144
+ {
2145
+ "inputs": [
2146
+ {
2147
+ "internalType": "address",
2148
+ "name": "implementation",
2149
+ "type": "address"
2150
+ },
2151
+ {
2152
+ "internalType": "address",
2153
+ "name": "activatedBy",
2154
+ "type": "address"
2155
+ },
2156
+ {
2157
+ "internalType": "bytes",
2158
+ "name": "upgradeData",
2159
+ "type": "bytes"
2160
+ }
2161
+ ],
2162
+ "name": "upgrade",
1867
2163
  "outputs": [],
1868
2164
  "stateMutability": "nonpayable",
1869
2165
  "type": "function"